之前入门了Scrapy,用Scrapy框架爬取了豆瓣电影TOP250,最近打算学习下scrapy-redis分布式爬虫,学习之前再重新温故下Scrapy,这个总结我缩写了很多内容,很多介绍可以看下我之前写的豆瓣movie
实战应用
打开CMD输入
scrapy startproject maoyan
|
|
编辑 item.py
- 首先,引入Scrapy
- 接着,创建一个类,继承自scrapy.item,这个是用来储存要爬下来的数据的存放容器,类似orm的写法
- 我们要记录的是:电影的名字、电影的评分、电影的上映时间、电影类型、电影英文名
获取网页数据
网页数据使用Xpath来索取元素非常方便,附上W3SCHOOL xpath学习 接下来,我们定义一下url的爬取规则
http://maoyan.com/films?offset=30
用正则表达式定义下一页链接
r’http://maoyan.com/films\?offset=\d+‘
我们真正要抓取电影详情页的是这个链接 http://maoyan.com/films/1170264
正则定义链接
r’http://maoyan.com/films/\d+‘
好了,到这一步编辑spider
|
|
spider写完后我们要将数据存进MongoDB数据库内,编辑pipeline.py
|
|
配置文件
打开setting.py
|
|
好了,现在开启爬虫
scrapy crawl my
写这个爬虫应该会遇到302重定向或者被网站发现是机器人操作,建议延长delay时间,不过爬取效率会非常低!!总共有23110页,每页有30条数据,总共693300条数据,就算不被ban掉,那得爬到猴年马月……………………………………………………
不说了,赶紧学习分布式爬虫!!!!
欢迎访问博客Treehl的博客
完整代码GitHub
简书
最后放一个爬虫集合,是我最近学习Python写的,喜欢的亲!给个Star呗!!!
SpiderList