在分析和處理選擇內容時,還需注意頁面的JS可能會修改DOM樹結構。
css
(一)GitHub的使用html
因爲以前使用Win,沒使用過shell的。目前只是瞭解。之後再補充。找到幾個不錯的教程python
GitHub超詳細圖文攻略 http://blog.csdn.net/vipzjyno1/article/details/22098621 shell
Github修改提交 http://www.360doc.com/content/12/0602/16/2660674_215429880.shtml
數據庫
之後再補充!!!!!
cookie
(二)FireFox的FireBug的使用dom
以前一直使用FireFox的F12默認調試工具,感受就挺爽的了。剛纔換了FireBug一試,那簡直就更爽了。scrapy
Tools-->Web Developer-->Get More Tools 而後,通常第一個就是 FireBug 安裝便可。以後按F12,就默認啓用了。ide
功能簡直強大到沒朋友。能夠直接獲取元素的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中