因为要学习数据分析,需要从网上爬取数据,所以开始学习爬虫,使用python进行爬虫,有好几种模拟发送请求的方法,最基础的是使用urllib.request模块(python自带,无需再下载),第二是requests模块(第三方库,需要pip install requests),第三是直接使用scaper模块(第三方库,需要下载)。

本次开发使用的工具是jupyter notebook,使用到的模块主要有requests(模拟http请求,详情请看http://2.python-requests.org/zh_CN/latest/user/quickstart.html),BeautifulSoup(处理请求的数据,以dom的形式进行处理,详细查看https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/),pandas(将处理后的数据存储为DataFrame,如果想详细了解此库可以查看https://www.cnblogs.com/lvpengbo/p/10851096.html),re(正则表达式库 https://docs.python.org/zh-cn/3/library/re.html)。

具体代码如下:

import requests
import pandas as pd
import re
from bs4 import BeautifulSoup
url='https://movie.douban.com/top250?start={}&filter='
headers={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"}
movie_list=[]
movie_rank=[]
movie_score=[]
people_num=[]
movie_year=[]
county_list=[]
director_list=[]
quote_list=[]
for i in range(10):
start=i*25
request_url=url.format(start)
response=requests.get(request_url,headers=headers)
data=response.content.decode('utf-8')
soup=BeautifulSoup(data,'html.parser')
all_item_divs=soup.find_all(class_='item')
for item in all_item_divs:
movie_list.append(item.find('span').get_text())
movie_rank.append(item.find('em').get_text())
movie_score.append(item.find('span',class_='rating_num').get_text())
num=item.find('div',class_='star').contents[7].get_text()
people_num.append(int(re.findall('\d+',num)[0]))
br_value=item.find('p').get_text()
movie_year.append(re.findall('\d+',br_value)[0].strip())
director=list(filter(None,br_value.split('/')[0].split(':')[1].split(' ')))[0]
director_list.append(director)
county_list.append(br_value.split('/')[2].strip())
if item.find('span',class_='inq')==None:
quote_list.append('')
else:
quote_list.append(item.find('span',class_='inq').get_text())
df=pd.DataFrame(
{'排名':movie_rank,
'电影名称':movie_list,
'上映日期':movie_year,
'国家':county_list,
'导演':director_list,
'评分':movie_score,
'评论人数':people_num,
'经典台词':quote_list})
df.to_csv('豆瓣250.csv')

数据集结果:国家这列有问题,字符串切割的问题,主演和电影类型也是因为字符串切割问题没有获取到

第一个爬虫经历----豆瓣电影top250(经典案例)的更多相关文章

  1. 【Python爬虫】:使用高性能异步多进程爬虫获取豆瓣电影Top250

    在本篇博文当中,将会教会大家如何使用高性能爬虫,快速爬取并解析页面当中的信息.一般情况下,如果我们请求网页的次数太多,每次都要发出一次请求,进行串行执行的话,那么请求将会占用我们大量的时间,这样得不偿 ...

  2. <爬虫实战>豆瓣电影TOP250(三种解析方法)

    1.豆瓣电影排行.py # 目标:爬取豆瓣电影排行榜TOP250的电影信息 # 信息包括:电影名字,上映时间,主演,评分,导演,一句话评价 # 解析用学过的几种方法都实验一下①正则表达式.②Beaut ...

  3. 爬虫_豆瓣电影top250 (正则表达式)

    一样的套路,就是多线程还没弄 import requests import re import json headers = 'Mozilla/5.0 (Windows NT 10.0; WOW64) ...

  4. Python 爬虫:豆瓣电影Top250,包括电影导演、类型、年份、主演

    结果输出到文本文件中. import codecs import requests from bs4 import BeautifulSoup headers={'User-Agent': 'Mozi ...

  5. scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250

    scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...

  6. python爬虫 Scrapy2-- 爬取豆瓣电影TOP250

    sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...

  7. Python爬虫----抓取豆瓣电影Top250

    有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...

  8. 练习:一只豆瓣电影TOP250的爬虫

    练习:一只豆瓣电影TOP250爬虫 练习:一只豆瓣电影TOP250爬虫 ①创建project ②编辑items.py import scrapyclass DoubanmovieItem(scrapy ...

  9. 一起学爬虫——通过爬取豆瓣电影top250学习requests库的使用

    学习一门技术最快的方式是做项目,在做项目的过程中对相关的技术查漏补缺. 本文通过爬取豆瓣top250电影学习python requests的使用. 1.准备工作 在pycharm中安装request库 ...

随机推荐

  1. 【Linux_Shell 脚本编程学习知识点、判断传入参数是否是 整数】

    判断脚本传入的参数是否是整数 常用的几种方法 完整Shell 脚本如下: #!/bin/sh ##################################################### ...

  2. ionic3懒加载IonicPage使用报错

    ionic3.X版本有不少亮点.作为从angular1到ionic1.ionic2一直用它们开发单页面应用的使用者来说,一直存在的一个痛点就是,将整个项目作为网页不打包成app的话,第一次加载时间太长 ...

  3. haproxy笔记之三:配置HAProxy详细介绍

    2.1 配置文件格式 HAProxy的配置处理3类来主要参数来源:——最优先处理的命令行参数,——“global”配置段,用于设定全局配置参数:——proxy相关配置段,如“defaults”.“li ...

  4. supervised learning|unsupervised learning

    监督学习即是supervised learning,原始数据中有每个数据有自己的数据结构同时有标签,用于classify,机器learn的是判定规则,通过已成熟的数据training model达到判 ...

  5. nodejs+vue.js+webpack

    前端: nodejs+vue.js+webpack 后台:ssb(Spring+SpringMVC + mybatis-plus) 开发工具:idea 一.前提 1.安装nodejs 2.安装完nod ...

  6. idea运行时默认显示的index.jsp修改方法

    在web.xml中加入以下代码,然后重启服务器就可以了. <welcome-file-list> <welcome-file>这儿写你要显示的页面名称</welcome- ...

  7. 吴裕雄--天生自然KITTEN编程:狡兔三窟

  8. 吴裕雄--天生自然 PYTHON语言数据分析:ESA的火星快车操作数据集分析

    import os import numpy as np import pandas as pd from datetime import datetime import matplotlib imp ...

  9. 关于利用glassfish部署Java EE的firstcup-war时报错

    在利用maven+glassfish打包部署Java EE的firstcup-war时报错 1.在利用glassfish部署firstcup-war.war文件时提示如下错误信息: 根据上面的错误提示 ...

  10. Memcached笔记——(一)安装&常规错误&监控

    08年的时候接触过Memcached,当时还对它的客户端产品嗤之以鼻,毕竟手工代码没有各种ORM原生XML配置方便.尽管如此,Memcached现在已经成了服务器架构里不可或缺的一部分! 相关链接: ...