python爬蟲----(5. scrapy框架,綜合應用及其餘)

    在分析和處理選擇內容時,還需注意頁面的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中
相關文章
相關標籤/搜索