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