首页 > 代码库 > python爬虫----(5. scrapy框架,综合应用及其他)
python爬虫----(5. scrapy框架,综合应用及其他)
在分析和处理选择内容时,还需注意页面的JS可能会修改DOM树结构。
(一)GitHub的使用
由于之前使用Win,没使用过shell的。目前只是了解。以后再补充。找到几个不错的教程
GitHub超详细图文攻略 http://blog.csdn.net/vipzjyno1/article/details/22098621
Github修改提交 http://www.360doc.com/content/12/0602/16/2660674_215429880.shtml
以后再补充!!!!!
(二)FireFox的FireBug的使用
之前一直使用FireFox的F12默认调试工具,感觉就挺爽的了。刚才换了FireBug一试,那简直就更爽了。
Tools-->Web Developer-->Get More Tools 然后,一般第一个就是 FireBug 安装即可。之后按F12,就默认启用了。
功能简直强大到没朋友。可以直接获取元素的xpath,css path。还可修改cookies.....
(三)豆瓣电影抓取 http://www.ituring.com.cn/article/114408
(1)items.py
# -*- coding: utf-8 -*- from scrapy import Item, Field class MovieItem(Item): name = Field() year = Field() score = Field() director = Field() classification = Field() actor = Field()
(2)spiders/movie_spider.py
# -*- coding: utf-8 -*- from scrapy import Selector from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from douban.items import MovieItem class MovieSpider(CrawlSpider): name = "movie" allowed_domains = ["douban.com"] start_urls = ( ‘http://movie.douban.com/top250‘, ) # rules可以自定义urls的抓取 rules = ( # 这个Rule只是在start_urls的基础上查找urls,并不是数据抓取的具体页面 Rule(SgmlLinkExtractor(allow=(r‘http://movie.douban.com/top250\?start=\d+.*‘))), # 这个Rule是具体数据抓取的页面地址,callback是回调函数,负责处理返回的response数据 Rule(SgmlLinkExtractor(allow=(r‘http://movie.douban.com/subject/\d+‘)), callback=‘parse_item‘), ) def parse_item(self, response): sel = Selector(response) item = MovieItem() # 此处选择还可使用 css(), re() 等。还可利用FireBug协助选取 item[‘name‘] = sel.xpath(‘//span[@property="v:itemreviewed"]/text()‘).extract() item[‘year‘] = sel.xpath(‘//span[@class="year"]/text()‘).extract() item[‘score‘] = sel.xpath(‘//strong[@class="ll rating_num"]/text()‘).extract() item[‘director‘] = sel.xpath(‘//a[@rel="v:directedBy"]/text()‘).extract() item[‘classification‘] = sel.xpath(‘//span[@property="v:genre"]/text()‘).extract() item[‘actor‘] = sel.xpath(‘//a[@rel="v:starring"]/text()‘).extract() return item
(3)Pipeline.py
# 将抓取的数据保存到数据库中,这里有两个版本 #一个是保存到MySQL数据库中 #另一个是保存到非关系型数据库MongoDB中
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。