摘要:如果安裝了,終端將使用替代標(biāo)準(zhǔn)終端。終端與其他相比更為強(qiáng)大,提供智能的自動(dòng)補(bǔ)全,高亮輸出,及其他特性。也提供了一些快捷方式例如或同樣可以生效如之前的案例。當(dāng)然作用不僅僅如此,但是不屬于我們課程重點(diǎn),不做詳細(xì)介紹。
Scrapy Shell
Scrapy終端是一個(gè)交互終端,我們可以在未啟動(dòng)spider的情況下嘗試及調(diào)試代碼,也可以用來(lái)測(cè)試XPath或CSS表達(dá)式,查看他們的工作方式,方便我們爬取的網(wǎng)頁(yè)中提取的數(shù)據(jù)。
如果安裝了 IPython ,Scrapy終端將使用 IPython (替代標(biāo)準(zhǔn)Python終端)。 IPython 終端與其他相比更為強(qiáng)大,提供智能的自動(dòng)補(bǔ)全,高亮輸出,及其他特性。(推薦安裝IPython)
啟動(dòng)Scrapy Shell進(jìn)入項(xiàng)目的根目錄,執(zhí)行下列命令來(lái)啟動(dòng)shell:
scrapy shell "http://www.itcast.cn/channel/teacher.shtml"
圖片描述
Scrapy Shell根據(jù)下載的頁(yè)面會(huì)自動(dòng)創(chuàng)建一些方便使用的對(duì)象,例如 Response 對(duì)象,以及 Selector 對(duì)象 (對(duì)HTML及XML內(nèi)容)。
當(dāng)shell載入后,將得到一個(gè)包含response數(shù)據(jù)的本地 response 變量,輸入
response.body將輸出response的包體,輸出 response.headers 可以看到response的包頭。
輸入 response.selector 時(shí), 將獲取到一個(gè)response 初始化的類 Selector 的對(duì)象,此時(shí)可以通過(guò)使用
response.selector.xpath()或response.selector.css() 來(lái)對(duì) response 進(jìn)行查詢。
Scrapy也提供了一些快捷方式, 例如 response.xpath()或response.css()同樣可以生效(如之前的案例)。
Selectors選擇器Scrapy Selectors 內(nèi)置 XPath 和 CSS Selector 表達(dá)式機(jī)制
Selector有四個(gè)基本的方法,最常用的還是xpath:
xpath(): 傳入xpath表達(dá)式,返回該表達(dá)式所對(duì)應(yīng)的所有節(jié)點(diǎn)的selector list列表
extract(): 序列化該節(jié)點(diǎn)為Unicode字符串并返回list
css(): 傳入CSS表達(dá)式,返回該表達(dá)式所對(duì)應(yīng)的所有節(jié)點(diǎn)的selector list列表,語(yǔ)法同 BeautifulSoup4
re(): 根據(jù)傳入的正則表達(dá)式對(duì)數(shù)據(jù)進(jìn)行提取,返回Unicode字符串list列表
XPath表達(dá)式的例子及對(duì)應(yīng)的含義:/html/head/title: 選擇文檔中 標(biāo)簽內(nèi)的元素 /html/head/title/text(): 選擇上面提到的 元素的文字 //td: 選擇所有的 元素 //div[@class="mine"]: 選擇所有具有 class="mine" 屬性的 div 元素 嘗試Selector 我們用騰訊社招的網(wǎng)站http://hr.tencent.com/positio...舉例:
# 啟動(dòng) scrapy shell "http://hr.tencent.com/position.php?&start=0#a" # 返回 xpath選擇器對(duì)象列表 response.xpath("http://title") [u804cu4f4du641cu7d22 | u793eu4f1au62dbu8058 | Tencent u817eu8bafu62dbu8058] # 使用 extract()方法返回 Unicode字符串列表 response.xpath("http://title").extract() [u" u804cu4f4du641cu7d22 | u793eu4f1au62dbu8058 | Tencent u817eu8bafu62dbu8058 "] # 打印列表第一個(gè)元素,終端編碼格式顯示 print response.xpath("http://title").extract()[0]職位搜索 | 社會(huì)招聘 | Tencent 騰訊招聘 # 返回 xpath選擇器對(duì)象列表 response.xpath("http://title/text()")# 返回列表第一個(gè)元素的Unicode字符串 response.xpath("http://title/text()")[0].extract() u"u804cu4f4du641cu7d22 | u793eu4f1au62dbu8058 | Tencent u817eu8bafu62dbu8058" # 按終端編碼格式顯示 print response.xpath("http://title/text()")[0].extract() 職位搜索 | 社會(huì)招聘 | Tencent 騰訊招聘 response.xpath("http://*[@class="even"]") 職位名稱: print site[0].xpath("./td[1]/a/text()").extract()[0] TEG15-運(yùn)營(yíng)開發(fā)工程師(深圳) 職位名稱詳情頁(yè): print site[0].xpath("./td[1]/a/@href").extract()[0] position_detail.php?id=20744&keywords=&tid=0&lid=0 職位類別: print site[0].xpath("./td[2]/text()").extract()[0] 技術(shù)類 以后做數(shù)據(jù)提取的時(shí)候,可以把現(xiàn)在Scrapy Shell中測(cè)試,測(cè)試通過(guò)后再應(yīng)用到代碼中。
當(dāng)然Scrapy Shell作用不僅僅如此,但是不屬于我們課程重點(diǎn),不做詳細(xì)介紹。
官方文檔:[http://scrapy-chs.readthedocs...
Spider][3]文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/41383.html
相關(guān)文章
scrapy入門教程3:scrapy的shell命令
摘要:用例運(yùn)行爬蟲命令基本語(yǔ)法是否需要項(xiàng)目存在當(dāng)然是不需要咯貌似這個(gè)命令是不依托一個(gè)項(xiàng)目而直接運(yùn)行一個(gè)爬蟲的命令。用例我終于寫完了,喜歡的就收藏推薦一下吧,這樣我就會(huì)更有動(dòng)力寫新的教程了,哇哈哈 0. 基本環(huán)境說(shuō)明 本文截圖及運(yùn)行環(huán)境均在Win8上實(shí)現(xiàn)(是的,我放假回家了,家里的機(jī)器是win8的沒(méi)有辦法),但基本步驟與win 7環(huán)境基本相同。(應(yīng)該把~)ps:我后來(lái)?yè)Q了臺(tái)win7的電腦,所...
scrapy入門教程——爬取豆瓣電影Top250!
摘要:注意爬豆爬一定要加入選項(xiàng),因?yàn)橹灰馕龅骄W(wǎng)站的有,就會(huì)自動(dòng)進(jìn)行過(guò)濾處理,把處理結(jié)果分配到相應(yīng)的類別,但偏偏豆瓣里面的為空不需要分配,所以一定要關(guān)掉這個(gè)選項(xiàng)。 本課只針對(duì)python3環(huán)境下的Scrapy版本(即scrapy1.3+) 選取什么網(wǎng)站來(lái)爬取呢? 對(duì)于歪果人,上手練scrapy爬蟲的網(wǎng)站一般是官方練手網(wǎng)站 http://quotes.toscrape.com 我們中國(guó)人,當(dāng)然...
scrapy提升篇之配置
摘要:提升篇之配置增加并發(fā)并發(fā)是指同時(shí)處理的的數(shù)量。其有全局限制和局部每個(gè)網(wǎng)站的限制。使用級(jí)別來(lái)報(bào)告這些信息。在進(jìn)行通用爬取時(shí)并不需要,搜索引擎則忽略。禁止能減少使用率及爬蟲在內(nèi)存中記錄的蹤跡,提高性能。 scrapy提升篇之配置 增加并發(fā) 并發(fā)是指同時(shí)處理的request的數(shù)量。其有全局限制和局部(每個(gè)網(wǎng)站)的限制。Scrapy默認(rèn)的全局并發(fā)限制對(duì)同時(shí)爬取大量網(wǎng)站的情況并不適用,因此您需要...
10、web爬蟲講解2—Scrapy框架爬蟲—Scrapy安裝—Scrapy指令
摘要:負(fù)責(zé)處理被提取出來(lái)的。典型的處理有清理驗(yàn)證及持久化例如存取到數(shù)據(jù)庫(kù)知識(shí)庫(kù)項(xiàng)目的設(shè)置文件實(shí)現(xiàn)自定義爬蟲的目錄中間件是在引擎及之間的特定鉤子,處理的輸入和輸出及。 【百度云搜索:http://www.bdyss.com】 【搜網(wǎng)盤:http://www.swpan.cn】 Scrapy框架安裝 1、首先,終端執(zhí)行命令升級(jí)pip: python -m pip install --upgrad...
Scrapy基本用法
安裝scrapy 不同操作系統(tǒng)安裝操作不同,可以直接看官方文檔Install Scrapy 創(chuàng)建一個(gè)項(xiàng)目 在命令行輸入 scrapy startproject tutorial 進(jìn)入項(xiàng)目目錄創(chuàng)建一個(gè)spider cd tutorial scrapy genspider quotes domain.com import scrapy class QuotesSpider(scrapy.Spider...
發(fā)表評(píng)論
0條評(píng)論
HmyBmny
男|高級(jí)講師
TA的文章
閱讀更多
tensorflow搭建卷積神經(jīng)網(wǎng)絡(luò)
閱讀 671·2023-04-25 18:59
虛擬主機(jī)可以做什么-虛擬主機(jī)是什么概念?
閱讀 1211·2021-09-22 16:00
如何遠(yuǎn)程云主機(jī)ip-云主機(jī)怎么遠(yuǎn)程操作?
閱讀 1889·2021-09-22 15:42
什么叫云主機(jī)-云主機(jī)是什么?
閱讀 3594·2021-09-22 15:27
css--下拉菜單
閱讀 1246·2019-08-30 15:54
2019年7月所遇知識(shí)點(diǎn)整理
閱讀 1104·2019-08-30 11:16
關(guān)于sass、scss、less的概念性知識(shí)匯總
閱讀 2445·2019-08-29 16:24
orderBy排序與篩選的例子
閱讀 820·2019-08-29 12:14
<閱讀需要支付1元查看