日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

scrapy框架学习(三)Spiders

發(fā)布時(shí)間:2023/12/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 scrapy框架学习(三)Spiders 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Spider類(lèi)定義了如何爬取某個(gè)(或某些)網(wǎng)站。包括了爬取的動(dòng)作(例如:是否跟進(jìn)鏈接)以及如何從網(wǎng)頁(yè)的內(nèi)容中提取結(jié)構(gòu)化數(shù)據(jù)(爬取item)。 也就是說(shuō)我們對(duì)網(wǎng)頁(yè)的解析需要在Spider類(lèi)中定義。


Spider類(lèi)的爬取方式:

①spider中初始的request是通過(guò)調(diào)用 start_requests() 來(lái)獲取的。 start_requests() 讀取 start_urls 中的URL, 并以 parse 為回調(diào)函數(shù)生成 Request。

②在回調(diào)函數(shù)內(nèi)分析返回的(網(wǎng)頁(yè))內(nèi)容,返回 Item 對(duì)象或者 Request 或者一個(gè)包括二者的可迭代容器。 返回的Request對(duì)象之后會(huì)經(jīng)過(guò)Scrapy處理,下載相應(yīng)的內(nèi)容,并調(diào)用設(shè)置的callback函數(shù)(函數(shù)可相同)。


接下來(lái)要完成的是對(duì)貓眼電影TOP100的電影進(jìn)行翻頁(yè)提取電影名+相對(duì)地址

1.更改one_spider.py文件

class SamSpider(scrapy.Spider):name = "sam"start_urls = ["https://maoyan.com/board/4"]url = 'https://maoyan.com/board/4'def parse(self, response):print('>'*50,'獲取數(shù)據(jù)')for sel in response.xpath('//*[@id="app"]/div/div/div/dl/dd'):item = SamzhuItem()item['name'] = sel.xpath('div/div/div[1]/p[1]/a/@title').extract()item['url'] = sel.xpath('div/div/div[1]/p[1]/a/@href').extract()print(item)print('>'*50,'獲取下一頁(yè)請(qǐng)求')a=response.css('.list-pager li:last-child a::attr(href)').extract()[0] #選擇到‘下一頁(yè)’的按鈕if re.search(r'offset',a,re.M|re.I)!=None:print('換頁(yè)成功')yield scrapy.Request(self.url+a, callback=self.parse) #返回一個(gè)requset,設(shè)置callback函數(shù)為parseprint('+'*50)else:print('到達(dá)終點(diǎn)')

2.運(yùn)行結(jié)果:

可以發(fā)現(xiàn)每次獲取完一頁(yè)數(shù)據(jù)后,都會(huì)DEBUG輸出一條信息,代表我們發(fā)起了一個(gè)新的請(qǐng)求,可以看到請(qǐng)求的網(wǎng)址就是我們下一頁(yè)的網(wǎng)址,因?yàn)槲覀兿乱豁?yè)的回調(diào)函數(shù)也是本身,所以便構(gòu)成了迭代效果。

?


小結(jié):

上面采用了內(nèi)置的scrapy.Spider,除了這個(gè),還有CrawlSpider。

從這里開(kāi)始已經(jīng)可以開(kāi)始感受到Scrapy的一些魅力了,能夠使自己把更多的時(shí)間精力放在具體的爬蟲(chóng)工作上,而非邏輯搭建。

總結(jié)

以上是生活随笔為你收集整理的scrapy框架学习(三)Spiders的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。