1. 程式人生 > >scrapy框架的基礎使用流程

scrapy框架的基礎使用流程

div extra auto 工程目錄 domain 配置 link 自動 應對

前提是安裝好各種準備庫。

1.新建一個工程

在終端輸入:scrapy startprojetc 你的項目名, 和django比較類似

# scrapy.cfg  項目的主配置信息
# items.py 設置數據存儲模版,用於結構化數據
# pipelines.py  數據持久化處理
# settings.py 配置文件
# spiders 爬蟲的目錄

2.在目錄下創建一個爬蟲文件

2.1 在終端切換到工程目錄,然後輸入:scrapy genspider 爬蟲文件的名稱 起始url

創建好後會自動給你包含如下的代碼的文件

# -*- coding: utf-8 -*-
import scrapy


class FirstfileSpider(scrapy.Spider):
    name = ‘firstfile‘
    allowed_domains = [‘www.xiushibaike.com‘]
    start_urls = [‘http://www.xiushibaike.com/‘]

    def parse(self, response):
        pass

所有的爬蟲類都會繼承這個Spider類,name是對應爬蟲文件的名稱(在多個爬蟲文件中),allowed_domains是允許的域名,只可以爬取指定域名下的頁面數據,也可以指定多個域名。start_urls是起始url,表示當前工程將要爬取的頁面url,註意要符合前面的允許的域名。最後的parse函數是對獲取的頁面數據指定內容的解析。response參數指的的拿到的響應對象。註意parse方法的返回值必須為叠代器或者空。

3.對應的文件中編寫爬蟲的功能程序

4.配置文件的編寫

剛開始使用時settings.py文件就註意兩個參數,USER_AGENT爬蟲身份偽裝(就是那個headers中的USER-Agent),ROBOSTXT_OBEY表示是否遵守RobotTxt協議。

5.執行代碼

終端中輸入命令:scrapy crawl 文件名

簡單的示例:爬取嗅事百科段子作者與內容。

# -*- coding: utf-8 -*-
import scrapy


class FirstfileSpider(scrapy.Spider):
    name = ‘firstfile‘
    # 這個一般不用
    # allowed_domains = [‘www.qiushibaike.com‘]
    start_urls = [‘https://www.qiushibaike.com/text/‘]

    def parse(self, response):

        # 使用框架的xpath接口
        list_div = response.xpath(‘//div[@id="content-left"]/div‘)
        for div in list_div:
            author = div.xpath("./div/a[2]/h2/text()").extract()[0]
            content = div.xpath("./a/div/span/text()").extract()[0]
            print(author)
            print(content)

scrapy框架的基礎使用流程