Python爬虫案例1:手把手教你爬取豆瓣TOP250电影各种信息

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/PbGc396Dwxjb77F2je/article/details/80154985

从建立爬虫,到运行成功,一步步跟着来即可。

本文有两个案例;

  • 案例1:从建立爬虫项目开始,一步步教你如何获取电影名称和网址

  • 案例2:更高级一点,爬取电影名称、导演、演员、评分、上映时间、时长、别名等,且存储到文件。


案例1:获取豆瓣top250的电影名称和网址

1、新建爬虫项目:

步骤1-1:开始---输入cmd,打开命令框

640?wx_fmt=png&wxfrom=5&wx_lazy=1


步骤1-2:cd 进入想要放爬虫的文件夹(也即你想让你的爬虫放的文件夹):比如我自己的文件夹:cd C:\Users\huhuanhuan\PycharmProjects\scrapy

640?wx_fmt=png&wxfrom=5&wx_lazy=1

步骤1-3:在当前目录中创创建一个爬虫项目文件:scrapy startproject douban250

640?wx_fmt=png&wxfrom=5&wx_lazy=1

在pycharm中,会看到新建的爬虫项目如下的目录结构

640?wx_fmt=png

步骤1-4:进入新建立的项目文件夹中:cd douban50

后续运行已经写好的爬虫,也需要进入到这个目录下面。

640?wx_fmt=png

步骤1-5:建立一个爬虫蜘蛛,比如爬虫名字为test:

scrapy genspider test movie.douban.com/top250

640?wx_fmt=png

此时在pycharm中已经可以看到test.py文件。

640?wx_fmt=png


2、编写爬虫文件:

三个注意及需要修改的地方:

1)在爬虫test.py文件中编写爬虫的程序

2)在settings.py文件中设置延迟下载时间,以及user-agent

3)运行爬虫:可以新增一个py文件,比如名字为runspider.py,方便运行爬虫,不用每次切换到cmd控制页面。


注意点2-1:打开test.py文件,写入如下程序:

640?wx_fmt=png

注意点2-2:打开settings.py文件,修改一下“USER_AGENT”

640?wx_fmt=png

    其中USER_AGENT是通过在豆瓣top250的页面,右键---检查----点击nework,找到header,里面有USER_AGENT,把内容复制到settings.py文件即可。主要为了防止被网站拒绝访问。

640?wx_fmt=png

另外为了防止被网站封掉,可以设置下延迟下载时间:

640?wx_fmt=png


注意点2-3:在项目文件夹下新增一个runspider.py文件,写入程序,以便直接在pycharm运行爬虫。

640?wx_fmt=png

程序内容为:

640?wx_fmt=png

运行runspider.py文件,即可得到所有的电影名称和网址。

640?wx_fmt=png

你已经获取了所有的豆瓣电影信息了。


案例2:如果你想要更高级一点,爬取电影名称、导演、演员、评分、上映时间、时长、别名等,且存储到文件。

需要在5个py文件中修改:

1)在爬虫test_all.py文件中编写爬虫的程序

2)items.py。设置存储的字段

3)pipelines.py。主要是存储文件的程序

4)在settings.py文件中设置延迟下载时间、user-agent、pipeline

5)同案例1。运行爬虫.py:可以新增一个py文件,比如名字为runspider.py,方便运行爬虫,不用每次切换到cmd控制页面。


目录如下:

640?wx_fmt=png


1)爬虫文件test_all.py:主要有三个函数:

  • parse:查找到a标签、获取电影详情页面链接以及下一页的链接,注意函数间的回调

  • getinfobyre:对于正则表达式获取的数据进行处理

  • detail_parse:对于跳转的电影详情页面进行数据提取,这里主要注意ItemLoader的用法,以及如果继承上一个链接传来的数据。

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png


2)items.py。设置存储的字段。主要注意点,在数据的输入整理(input_processor)和输出整理(output_processor)的用法。

640?wx_fmt=png


3)pipelines.py。主要是存储文件的程序。

这里以存储txt为例说明。只存储内容。

640?wx_fmt=png


4)在settings.py文件中设置。延迟下载时间、user-agent、ITEM_PIPELINES

代理:

640?wx_fmt=png

延迟下载:

640?wx_fmt=png

ITEM_PIPELINES:

640?wx_fmt=png


5)运行爬虫.py:可以新增一个py文件,比如名字为runspider.py,方便运行爬虫,不用每次切换到cmd控制页面。

640?wx_fmt=png


程序案例链接:https://pan.baidu.com/s/1Qvj-Qk4HkjbKDCq7oBogIg 密码:izrg


更多的知识,请参考作者的其他博文。

猜你喜欢

转载自blog.csdn.net/PbGc396Dwxjb77F2je/article/details/80154985