W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
蜘蛛是你定義的類,Scrapy用來(lái)從一個(gè)網(wǎng)站(或一組網(wǎng)站)獲取信息。它們必須是子類 ?Spider
? 定義要發(fā)出的初始請(qǐng)求,可以選擇如何跟蹤頁(yè)面中的鏈接,以及如何解析下載的頁(yè)面內(nèi)容以提取數(shù)據(jù)。
這是我們第一只蜘蛛的代碼。將其保存在名為的文件中 ?quotes_spider.py
? 下 ?tutorial/spiders
? 項(xiàng)目中的目錄:
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
def start_requests(self):
urls = [
'http://quotes.toscrape.com/page/1/',
'http://quotes.toscrape.com/page/2/',
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = response.url.split("/")[-2]
filename = f'quotes-{page}.html'
with open(filename, 'wb') as f:
f.write(response.body)
self.log(f'Saved file {filename}')
如你所見(jiàn),我們的蜘蛛子類 ?scrapy.Spider
? 并定義了一些屬性和方法:
name
? :標(biāo)識(shí)蜘蛛。它在一個(gè)項(xiàng)目中必須是唯一的,也就是說(shuō),不能為不同的蜘蛛設(shè)置相同的名稱。start_requests()
? :必須返回一個(gè)ITable of requests(您可以返回一個(gè)請(qǐng)求列表或編寫一個(gè)生成器函數(shù)),蜘蛛將從中開(kāi)始爬行。隨后的請(qǐng)求將從這些初始請(qǐng)求中依次生成。parse()
? :將調(diào)用的方法,用于處理為每個(gè)請(qǐng)求下載的響應(yīng)。響應(yīng)參數(shù)是的實(shí)例 ?TextResponse
? 它保存頁(yè)面內(nèi)容,并有進(jìn)一步有用的方法來(lái)處理它。這個(gè) ?parse()
? 方法通常解析響應(yīng),將抓取的數(shù)據(jù)提取為dict,并查找新的URL以跟蹤和創(chuàng)建新的請(qǐng)求。( ?Request
?0 從他們那里。Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: