scrapy框架的基礎使用流程
阿新 • • 發佈:2019-04-08
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框架的基礎使用流程