Python爬蟲框架Scrapy學習筆記原創

2021-09-24 19:55:18 字數 2885 閱讀 9360

scrapy

[toc]

開始首先手動安裝windows版本的twisted

pip install twisted-18.4.0-cp36-cp36m-win_amd64.whl

安裝scrapy

pip install -i scrapy

windows系統額外需要安裝pypiwin32

pip install -i pypiwin32

開始乙個專案

e:\svnproject>scrapy startproject testspider

生成乙個新的爬蟲(generate)

e:\svnproject>cd testspidere:\svnproject\testspider>scrapy genspider dongfeng www.dongfe.com

啟動乙個爬蟲

e:\svnproject\testspider>scrapy crawl dongfeng

>scrapy shell  # 命令列除錯該網頁

e:\svnproject\testspider\testspider>vim settings.py robotstxt_obey =false# 不要遵循**robots檔案

xpath

表示式說明

/body

選出當前選擇器的根元素body

/body/div

選取當前選擇器文件的根元素body的所有div子元素

/body/div[1]

選取body根元素下面第乙個div子元素

/body/div[last()]

選取body根元素下面最後乙個div子元素

/body/div[last()-1]

選取body根元素下面倒數第二個div子元素

//div

選取所有div子元素(不論出現在文件任何地方)

body//div

選取所有屬於body元素的後代的div元素(不論出現在body下的任何地方)

/body/@id

選取當前選擇器文件的根元素body的id屬性

//@class

選取所有元素的class屬性

//div[@class]

選取所有擁有class屬性的div元素

//div[@class='bold']

選取所有class屬性等於bold的div元素

//div[contains(@class,'bold')]

選取所有class屬性包含bold的div元素

/div/*

選取當前文件根元素div的所有子元素

//*選取文件所有節點

//div[@*]

獲取所有帶屬性的div元素

//div/a | //div/p

選取所有div元素下面的子元素a和子元素p(並集)

//p[@id='content']/text()

選取id為content的p標籤的內容(子元素的標籤和內容都不會獲取到)

> 注意: xpath在選擇時,參考的是html原始碼,而不是js載入後的html**

title_selector =response.xpath("//div[@class='entry-header']/h1/text()")title_str =title_selector.extract()[0]

css選擇器

表示式說明

*選擇所有節點

#container

選擇id為container的節點

.container

選取所有包含container類的節點

li a

選取所有li下的所有後代a元素(子和孫等所有的都會選中)

ul + p

選取ul後面的第乙個相鄰兄弟p元素

div#container > ul

選取id為container的div的所有ul子元素

ul ~ p

選取與ul元素後面的所有兄弟p元素

a[title]

選取所有有title屬性的a元素

a[href='']

選取所有href屬性等於的a元素

a[href*='taobao']

選取所有href屬性包含taobao的a元素

選取所有href屬性開頭為http的a元素

a[href$='.com']

選取所有href屬性結尾為.com的a元素

input[type=radio]:checked

選取選中的radio的input元素

div:not(#container)

選取所有id非container的div元素

li:nth-child(3)

選取第三個li元素

tr:nth-child(2n)

選取偶數字的tr元素

a::attr(href)

獲取所有a元素的href屬性值

h1_selector =response.css(".container h1::text")# 選取h1標題的內容h1_str =h1_selector.extract_first()# 取出陣列第乙個,如果沒有為空

爬蟲

Python爬蟲框架

一 u know!二 scrapy入門教程 三 網路爬蟲之scrapy框架詳解 四 scrapy編寫步驟 詳情見二 scrapy入門教程 1 mkdir乙個爬蟲資料夾 例 mkdir home zy pachong pa test 10 28 2 在 home zy pachong pa test ...

Python爬蟲 scrapy框架

開源的,對平台的爬蟲框架 舊版本 需要預先定義所需欄位 class myitem scrapy.item url scrapy.field 再將所需欄位填充 class myspier scrapy.spider defparse self,response return sudo apt inst...

python爬蟲scrapy框架

安裝 pip install scrapy startproject 建立乙個新專案 genspider 根據模板生成乙個新爬蟲 crawl 執行爬蟲 shell 啟動互動式抓取控制台 進入專案目錄 scrapy startproject crawlertest project name cd cr...