【scrapy】scrapy按分类爬取豆瓣电影基础信息
Scrapy简介
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。
Scrapy入门请看官方文档:scrapy官方文档
本爬虫简介
实现-scrapy中间件
agent轮换池:
class RotateUserAgentMiddleware(UserAgentMiddleware): #轮换代理agentdef __init__(self, user_agent=''):self.user_agent = user_agentdef process_request(self, request, spider):ua = random.choice(self.user_agent_list)if ua:#print '-----------------------Using user-agent:', ua, '------------------------'request.headers.setdefault('User-Agent', ua)# the default user_agent_list composes chrome,IE,firefox,Mozilla,opera,netscape# for more user agent strings,you can find it in http://www.useragentstring.com/pages/useragentstring.phpuser_agent_list = [ \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1" \"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11", \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6", \"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6", \"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1", \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5", \"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5", \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", \"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", \"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3", \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3", \"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", \"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", \"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", \"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3", \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24", \"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"]
ip轮换池:
实现-爬虫实现
item.py
class DoubanItem(scrapy.Item):movie_name = scrapy.Field()movie_director = scrapy.Field()movie_writer = scrapy.Field()movie_starring = scrapy.Field()movie_category = scrapy.Field()movie_country = scrapy.Field()#movie_language = scrapy.Field()movie_date = scrapy.Field()movie_time = scrapy.Field()movie_star = scrapy.Field()movie_5score = scrapy.Field()movie_4score = scrapy.Field()movie_3score = scrapy.Field()movie_2score = scrapy.Field()movie_1score = scrapy.Field()movie_describe = scrapy.Field()pass
看这item名都不用我解释...
doubanlist_spider.py
class doubanlistSpider(scrapy.Spider):name = "doubanlist"allowed_domains = ["movie.douban.com"]start_urls = ["https://movie.douban.com/tag/%E5%8A%A8%E7%94%BB"]def parse(self, response):for href in response.xpath('//a[@class="nbg"]/@href'):url = href.extract()yield scrapy.Request(url, callback=self.parse_each_movie)next_page = response.xpath('//span[@class="next"]/a/@href').extract()if next_page:print '--------------Finding next page: [%s] --------------------------', next_pageyield scrapy.Request(next_page[0], callback=self.parse)else:print '--------------There is no more page!--------------------------'def parse_each_movie(self, response):item = DoubanItem()item['movie_name'] = response.xpath('//span[@property="v:itemreviewed"]/text()').extract()item['movie_director'] = response.xpath('//a[@rel="v:directedBy"]/text()').extract()item['movie_writer'] = response.xpath('//span[@class="attrs"][2]/a/text()').extract()item['movie_starring'] = response.xpath('//a[@rel="v:starring"]/text()').extract()item['movie_category'] = response.xpath('//span[@property="v:genre"]/text()').extract()#item['movie_language'] = response.xpath('//*[@id="info"]').re(r'</span> (.*)<br>\n')[2]item['movie_date'] = response.xpath('//span[@property="v:initialReleaseDate"]/text()').extract()item['movie_time'] = response.xpath('//span[@property="v:runtime"]/text()').extract()item['movie_star'] = response.xpath('//strong[@property="v:average"]/text()').extract()item['movie_5score'] = response.xpath('//span[@class="rating_per"][1]/text()').extract()item['movie_4score'] = response.xpath('//span[@class="rating_per"][2]/text()').extract()item['movie_3score'] = response.xpath('//span[@class="rating_per"][3]/text()').extract()item['movie_2score'] = response.xpath('//span[@class="rating_per"][4]/text()').extract()item['movie_1score'] = response.xpath('//span[@class="rating_per"][5]/text()').extract()item['movie_describe'] = response.xpath('//*[@id="link-report"]/span/text()').re(r'\S+')check_item = response.xpath('//*[@id="info"]').re(r'</span> (.*)<br>\n')[1]result = self.check_contain_chinese(check_item)if result:item['movie_country'] = response.xpath('//*[@id="info"]').re(r'</span> (.*)<br>\n')[1]else:item['movie_country'] = response.xpath('//*[@id="info"]').re(r'</span> (.*)<br>\n')[2]yield itemdef check_contain_chinese(self, check_str):for ch in check_str.decode('utf-8'):if u'\u4e00' <= ch <= u'\u9fff':return Truereturn False
总结
我爱周雨楠
【scrapy】scrapy按分类爬取豆瓣电影基础信息相关推荐
- Python爬虫入门 | 7 分类爬取豆瓣电影,解决动态加载问题
比如我们今天的案例,豆瓣电影分类页面.根本没有什么翻页,需要点击"加载更多"新的电影信息,前面的黑科技瞬间被秒-- 又比如知乎关注的人列表页面: 我复制了其中两个人昵称 ...
- python爬取豆瓣电影信息可行性分析_Python爬虫实现的根据分类爬取豆瓣电影信息功能示例...
本文实例讲述了Python爬虫实现的根据分类爬取豆瓣电影信息功能.分享给大家供大家参考,具体如下: 代码的入口:if __name__ == '__main__': main()#! /usr/bin ...
- python BeautifulSoup爬取豆瓣电影top250信息并写入Excel表格
豆瓣是一个社区网站,创立于2005年3月6日.该网站以书影音起家,提供关于书籍,电影,音乐等作品信息,其描述和评论都是由用户提供的,是Web2.0网站中具有特色的一个网站. 豆瓣电影top250网址: ...
- Requests库实战(三)---爬取豆瓣电影详细信息
完整代码 爬取豆瓣电影的详细信息 地址:豆瓣电影动画 向下滑动时新增的数据也是Ajax请求,原理和上一个项目是一样的.唯一的不同是此处请求url携带了多个参数 import requests impo ...
- 【爬虫实践】记一次Scrapy框架入门使用爬取豆瓣电影数据
本次的学习分享主要是使用一次Scrapy框架,毕竟在很多次的时候,自己在提取一些或是需要实验数据的时候,数据量要求不大,很快便能通过简单的request等库进行调用,然后获取数据. 这次,则是想要使用 ...
- Python爬虫新手入门教学(一):爬取豆瓣电影排行信息
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 https://space. ...
- 简单爬取豆瓣电影相关信息
平台:pycharm 目标:爬取豆瓣网页电影名称,评分等信息,并存储存在csv文件中 代码(代码中的url和headers获取方法在下) import re import requests impor ...
- Python Scrapy 爬虫入门: 爬取豆瓣电影top250
一.安装Scrapy cmd 命令执行 pip install scrapy 二.Scrapy介绍 Scrapy是一套基于Twisted的异步处理框架,是纯python实现的爬虫框架,用户只需要定制开 ...
- Python爬虫学习---------根据分类爬取豆瓣电影的电影信息
代码的入口: if __name__ == '__main__': main() #! /usr/bin/python3 # -*- coding:utf-8 -*- # author:Sirius. ...
- 杀鸡用用牛刀 scrapy框架爬取豆瓣电影top250信息
文章目录 一.分析网页 二.scrapy爬虫 三.处理数据 原文链接:https://yetingyun.blog.csdn.net/article/details/108282786 创作不易,未经 ...
最新文章
- 嵌入式定制开发合作伙伴应该这样选择
- 修复.NET的HttpClient
- 学习笔记----周志华《机器学习》第五章(神经网络)(二)
- 构造函数失败_抛出异常
- Hibernate bean 对象配制文件
- 详解tomcat的连接数与线程池--转载
- 那些年使用Android studio遇到的问题
- 服务器 '' 上的 MSDTC 不可用。
- MTPA仿真实现和一些比较
- GymBase英文版主题-健身主题-WordPress响应式
- 支付宝对账单功能开发
- 麒麟子Cocos Creator实用技巧九:棋牌UI全分辨率适配方案
- LabVIEW formula node
- 面试时怎样做精彩的自我介绍
- Xcode遇到couldn’t be opened because you don’t have permission to view it.解决方法
- MySQL之——MSS主从复制(读写分离)实现
- 怎么把图片压缩到30k以内?如何图片压缩到指定大小?
- 签名 html5,在HTML5表单中使用涂写签名
- 部署Twikoo评论系统及其邮件推送(Vercel)
- 文本过长时中间部分用省略号表示。