python爬蟲scrapy框架的梨視頻案例解析
之前我們使用lxml對梨視頻網(wǎng)站中的視頻進(jìn)行了下載,感興趣的朋友點擊查看吧。
下面我用scrapy框架對梨視頻網(wǎng)站中的視頻標(biāo)題和視頻頁中對視頻的描述進(jìn)行爬取


分析:我們要爬取的內(nèi)容并不在同一個頁面,視頻描述內(nèi)容需要我們點開視頻,跳轉(zhuǎn)到新的url中才能獲取,我們就不能在一個方法中去解析我們需要的不同內(nèi)容
1.爬蟲文件
- 這里我們可以仿照爬蟲文件中的parse方法,寫一個新的parse方法,可以將新的url的響應(yīng)對象傳給這個新的parse方法
- 如果需要在不同的parse方法中使用同一個item對象,可以使用meta參數(shù)字典,將item傳給callback回調(diào)函數(shù)
- 爬蟲文件中的parse需要yield的Request請求,而item則在新的parse方法中使用yield item傳給下一個parse方法或管道文件
import scrapy
# 從items.py文件中導(dǎo)入BossprojectItem類
from bossProject.items import BossprojectItem
class BossSpider(scrapy.Spider):
name = 'boss'
# allowed_domains = ['www.xxx.com']
start_urls = ['https://www.pearvideo.com/category_5']
# 回調(diào)函數(shù)接受響應(yīng)對象,并且接受傳遞過來的meata參數(shù)
def content_parse(self,response):
# meta參數(shù)包含在response響應(yīng)對象中,調(diào)用meta,然后根據(jù)鍵值取出對應(yīng)的值:item
item = response.meta['item']
# 解析視頻鏈接中的對視頻的描述
des = response.xpath('//div[@class="summary"]/text()').extract()
des = "".join(des)
item['des'] = des
yield item
# 解析首頁視頻的標(biāo)題以及視頻的鏈接
def parse(self, response):
li_list = response.xpath('//div[@id="listvideoList"]/ul/li')
for li in li_list:
href = li.xpath('./div/a/@href').extract()
+ "".join(href)
title = li.xpath('./div[1]/a/div[2]/text()').extract()
title = "".join(title)
item = BossprojectItem()
item["title"] = title
#手動發(fā)送請求,并將響應(yīng)對象傳給回調(diào)函數(shù)
#請求傳參:meta={},可以將meta字典傳遞給請求對應(yīng)的回調(diào)函數(shù)
yield scrapy.Request(href,callback=self.content_parse,meta={'item':item})
2.items.py
要將BossprojectItem類導(dǎo)入爬蟲文件中才能夠創(chuàng)建item對象
import scrapy class BossprojectItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() # 定義了item屬性 title = scrapy.Field() des = scrapy.Field()
3.pipelines.py
open_spider(self,spider)和close_spider(self,spider)重寫這兩個父類方法,且這兩個方法都只執(zhí)行一次在process_item方法中最好保留return item,因為如果存在多個管道類,return item會自動將item對象傳給優(yōu)先級低于自己的管道類
from itemadapter import ItemAdapter
class BossprojectPipeline:
def __init__(self):
self.fp = None
# 重寫父類方法,只調(diào)用一次
def open_spider(self,spider):
print("爬蟲開始")
self.fp = open('./lishipin.txt','w')
# 接受爬蟲文件中yield傳遞來的item對象,將item中的內(nèi)容持久化存儲
def process_item(self, item, spider):
self.fp.write(item['title'] + '\n\t' + item['des'] + '\n')
# 如果有多個管道類,會將item傳遞給下一個管道類
# 管道類的優(yōu)先級取決于settings.py中的ITEM_PIPELINES屬性中對應(yīng)的值
## ITEM_PIPELINES = {'bossProject.pipelines.BossprojectPipeline': 300,} 鍵值中的值越小優(yōu)先級越高
return item
# 重寫父類方法,只調(diào)用一次
def close_spider(self,spider):
self.fp.close()
print("爬蟲結(jié)束")
4.進(jìn)行持久化存儲

到此這篇關(guān)于python爬蟲scrapy框架的梨視頻案例解析的文章就介紹到這了,更多相關(guān)python爬蟲scrapy框架內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python7個爬蟲小案例詳解(附源碼)下篇
- Python7個爬蟲小案例詳解(附源碼)中篇
- Python7個爬蟲小案例詳解(附源碼)上篇
- 利用Python爬蟲爬取金融期貨數(shù)據(jù)的案例分析
- Python爬蟲采集Tripadvisor數(shù)據(jù)案例實現(xiàn)
- Python?Ajax爬蟲案例分享
- Python爬蟲入門案例之爬取去哪兒旅游景點攻略以及可視化分析
- Python爬蟲入門案例之爬取二手房源數(shù)據(jù)
- Python爬蟲入門案例之回車桌面壁紙網(wǎng)美女圖片采集
- Python爬蟲之Scrapy環(huán)境搭建案例教程
- 用Python爬蟲破解滑動驗證碼的案例解析
- python爬蟲系列網(wǎng)絡(luò)請求案例詳解
- python爬蟲破解字體加密案例詳解
- python爬蟲線程池案例詳解(梨視頻短視頻爬取)
- python爬蟲利器之requests庫的用法(超全面的爬取網(wǎng)頁案例)
- Python爬蟲實戰(zhàn)案例之爬取喜馬拉雅音頻數(shù)據(jù)詳解
- Python爬蟲Scrapy框架CrawlSpider原理及使用案例
- Python爬蟲之對CSDN榜單進(jìn)行分析
相關(guān)文章
python如何將aac轉(zhuǎn)為mp3,保持原有目錄結(jié)構(gòu)
使用Python腳本實現(xiàn)AAC格式轉(zhuǎn)MP3格式的方法介紹,需要用戶輸入AAC文件所在目錄路徑和MP3輸出目錄路徑,通過調(diào)用FFmpeg工具實現(xiàn)格式轉(zhuǎn)換,該腳本簡單易懂,適合需要批量處理音頻文件的用戶,使用前需確保已安裝FFmpeg環(huán)境2024-11-11
使用Python生成F分布表并導(dǎo)出為Excel文件的代碼實現(xiàn)
在統(tǒng)計分析中,F FF分布是一種非常重要的連續(xù)概率分布,廣泛應(yīng)用于方差分析、回歸分析的顯著性檢驗等場景,為了方便查閱和使用F分布的臨界值,本文給大家介紹了使用Python生成F分布表并導(dǎo)出為Excel文件,需要的朋友可以參考下2024-11-11
Python實現(xiàn)監(jiān)控屏幕界面內(nèi)容變化并發(fā)送通知
這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)實時監(jiān)控屏幕上的信息是否發(fā)生變化并發(fā)送通知,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-04-04
Django學(xué)習(xí)筆記之為Model添加Action
這篇文章主要介紹了Django給admin添加Action,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04
講解Python3中NumPy數(shù)組尋找特定元素下標(biāo)的兩種方法
這篇文章主要介紹了講解Python3中NumPy數(shù)組尋找特定元素下標(biāo)的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python實現(xiàn)發(fā)送帶有pdf附件的電子郵件
使用Python發(fā)郵件,是個簡單的話題,可是如何可以優(yōu)雅的輕松的群發(fā)郵件,并附加PDF附件,是很多小伙伴的日常工作。本文就來和大家分享一下實現(xiàn)方法,需要的可以參考一下2023-02-02

