目錄小試牛刀:將糗百首頁中段子的內容和標題進行爬取
什麼是scrapy?
linux:
pip3 install scrapy
windows:
注意: 按順序依次全部安裝
a. pip3 install wheel
d. pip3 install pywin32
e. pip3 install scrapy
專案結構:
project_name/
scrapy.cfg:
project_name/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
scrapy.cfg 專案的主配置資訊。(真正爬蟲相關的配置資訊在settings.py檔案中)
items.py 設定資料儲存模板,用於結構化資料,如:django的model
pipelines 資料持久化處理
spiders 爬蟲目錄,如:建立檔案,編寫爬蟲解析規則
cd project_name(進入專案目錄)
scrapy genspider 應用名稱 爬取網頁的起始url (例如:scrapy genspider qiubai www.qiushibaike.com)
在步驟2執行完畢後,會在專案的spiders中生成乙個應用名的py爬蟲檔案,檔案原始碼如下
# -*- coding: utf-8 -*-
import scrapy
class qiubaispider(scrapy.spider):
name = 'qiubai' #應用名稱
#允許爬取的網域名稱(如果遇到非該網域名稱的url則爬取不到資料)
allowed_domains = ['']
#起始爬取的url
start_urls = ['']
#訪問起始url並獲取結果後的**函式,該函式的response引數就是向起始的url傳送請求後,獲取的響應物件.該函式返回值必須為可迭代物件或者null
def parse(self, response):
print(response.text) #獲取字串型別的響應內容
print(response.body)#獲取位元組型別的相應內容
修改內容及其結果如下:
22行:robotstxt_obey = false #可以忽略或者不遵守robots協議
# -*- coding: utf-8 -*-
import scrapy
class qiubaispider(scrapy.spider):
name = 'qiubai'
allowed_domains = ['']
start_urls = ['']
def parse(self, response):
#xpath為response中的方法,可以將xpath表示式直接作用於該函式中
odiv = response.xpath('//div[@id="content-left"]/div')
content_list = #用於儲存解析到的資料
for div in odiv:
#xpath函式返回的為列表,列表中存放的資料為selector型別的資料。我們解析到的內容被封裝在了selector物件中,需要呼叫extract()函式將解析的內容從selecor中取出。
author = div.xpath('.//div[@class="author clearfix"]/a/h2/text()')[0].extract()
content=div.xpath('.//div[@class="content"]/span/text()')[0].extract()
#將解析到的內容封裝到字典中
dic=
#將資料儲存到content_list這個列表中
return content_list
執行爬蟲程式:
scrapy crawl 爬蟲名稱 :該種執行形式會顯示執行的日誌資訊
scrapy crawl 爬蟲名稱 --nolog:該種執行形式不會顯示執行的日誌資訊
Scrapy框架應用
引擎 egine 引擎負責控制系統所有元件之間的資料流,並在某些動作發生時觸發事件。排程器 scheduler 用來接受引擎發過來的請求,壓入佇列中,並在引擎再次請求的時候返回.可以想像成乙個url的優先順序佇列,由它來決定下乙個要抓取的 是什麼,同時去除重複的 爬蟲 spiders spiders...
Scrapy學習 二 框架簡介
1.引擎向蜘蛛索取 2.引擎將要爬取的url交給排程器 3.排程器將url生成請求物件放入到指定的佇列 4.從佇列中出列乙個請求 8.引擎將資料交給蜘蛛 9.spider通過xpath解析,將解析結果交給引擎判斷 10.如果得到的url則繼續交給排程器,如果得到資料則交給管道處理 元件說明 scra...
Scrapy框架基礎(一)
1.scrapy的概念 scrapy是乙個python編寫的開源網路爬蟲框架。它是乙個被設計用於爬取網路資料 提取結構效能資料的框架。2.scrapy框架的作用 少量的 就能夠實現快速的抓取 3.scrapy的工作流程 1.爬蟲中的起始url構造成request物件 爬蟲中介軟體 引擎 排程器 4....