从建立爬虫,到运行成功,一步步跟着来即可。
本文有两个案例;
案例1:从建立爬虫项目开始,一步步教你如何获取电影名称和网址
案例2:更高级一点,爬取电影名称、导演、演员、评分、上映时间、时长、别名等,且存储到文件。
案例1:获取豆瓣top250的电影名称和网址
1、新建爬虫项目:
步骤1-1:开始---输入cmd,打开命令框
步骤1-2:cd 进入想要放爬虫的文件夹(也即你想让你的爬虫放的文件夹):比如我自己的文件夹:cd C:\Users\huhuanhuan\PycharmProjects\scrapy
步骤1-3:在当前目录中创创建一个爬虫项目文件:scrapy startproject douban250
在pycharm中,会看到新建的爬虫项目如下的目录结构
步骤1-4:进入新建立的项目文件夹中:cd douban50
后续运行已经写好的爬虫,也需要进入到这个目录下面。
步骤1-5:建立一个爬虫蜘蛛,比如爬虫名字为test:
scrapy genspider test movie.douban.com/top250
此时在pycharm中已经可以看到test.py文件。
2、编写爬虫文件:
三个注意及需要修改的地方:
1)在爬虫test.py文件中编写爬虫的程序
2)在settings.py文件中设置延迟下载时间,以及user-agent
3)运行爬虫:可以新增一个py文件,比如名字为runspider.py,方便运行爬虫,不用每次切换到cmd控制页面。
注意点2-1:打开test.py文件,写入如下程序:
注意点2-2:打开settings.py文件,修改一下“USER_AGENT”
其中USER_AGENT是通过在豆瓣top250的页面,右键---检查----点击nework,找到header,里面有USER_AGENT,把内容复制到settings.py文件即可。主要为了防止被网站拒绝访问。
另外为了防止被网站封掉,可以设置下延迟下载时间:
注意点2-3:在项目文件夹下新增一个runspider.py文件,写入程序,以便直接在pycharm运行爬虫。
程序内容为:
运行runspider.py文件,即可得到所有的电影名称和网址。
你已经获取了所有的豆瓣电影信息了。
案例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控制页面。
目录如下:
1)爬虫文件test_all.py:主要有三个函数:
parse:查找到a标签、获取电影详情页面链接以及下一页的链接,注意函数间的回调
getinfobyre:对于正则表达式获取的数据进行处理
detail_parse:对于跳转的电影详情页面进行数据提取,这里主要注意ItemLoader的用法,以及如果继承上一个链接传来的数据。
2)items.py。设置存储的字段。主要注意点,在数据的输入整理(input_processor)和输出整理(output_processor)的用法。
3)pipelines.py。主要是存储文件的程序。
这里以存储txt为例说明。只存储内容。
4)在settings.py文件中设置。延迟下载时间、user-agent、ITEM_PIPELINES。
代理:
延迟下载:
ITEM_PIPELINES:
5)运行爬虫.py:可以新增一个py文件,比如名字为runspider.py,方便运行爬虫,不用每次切换到cmd控制页面。
程序案例链接:https://pan.baidu.com/s/1Qvj-Qk4HkjbKDCq7oBogIg 密码:izrg
更多的知识,请参考作者的其他博文。
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。