久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

基于Python爬取愛(ài)奇藝資源過(guò)程解析

瀏覽:6日期:2022-08-04 18:13:20

像iqiyi這種視頻網(wǎng)站,現(xiàn)在下載視頻都需要下載相應(yīng)的客戶端。那么如何不用下載客戶端,直接下載非vip視頻?

選擇你想要爬取的內(nèi)容

該安裝的程序以及運(yùn)行環(huán)境都配置好

下面這段代碼就是我在愛(ài)奇藝?yán)锼阉亍坝⑽拿?,然后出?lái)的視頻,共有20頁(yè),那么我們便從第一頁(yè)開(kāi)始,解析網(wǎng)頁(yè),然后分析

分析每一頁(yè)網(wǎng)址,找出規(guī)律就可以直接得到所有頁(yè)面

然后根據(jù)每一個(gè)視頻的URL的標(biāo)簽,如’class’ ’div’ ’href’......通過(guò)bs4庫(kù)進(jìn)行爬取

而其他的信息則是直接循環(huán)所爬取到的URL,在每一個(gè)里再通過(guò)標(biāo)簽去找

import requestsimport pandas as pdfrom bs4 import BeautifulSoup#爬取URL headers={’user-agent’:’Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36’}b=[]for i in range(1,2): url='https://so.iqiyi.com/so/q_英文名_ctg_t_0_page_'+str(i)+'_p_1_qc_0_rd__site__m_1_bitrate_' #共20頁(yè),根據(jù)每頁(yè)的網(wǎng)址變換規(guī)律進(jìn)行拼接 r=requests.get(url,headers=headers) soup=BeautifulSoup(r.text,'html.parser') a=soup.findAll(’a’,{’class’:’main-tit’}) for i in a: if ’http://www.’in i.get(’href’)and ’html’in i.get(’href’): b.append(i.get(’href’))print(b)#爬取標(biāo)題e=[]for k in b: res=requests.get(k,headers=headers) Soup=BeautifulSoup(res.text,’html.parser’) c=Soup.findAll(’div’,{’class’:’feed-title-box’}) for d in c: e.append(d.find(’h1’).text) print(e)#爬取標(biāo)題下方描述f=[]for j in b: res=requests.get(j,headers=headers) Soup=BeautifulSoup(res.text,’html.parser’) c=Soup.findAll(’div’,{’class’:’qy-play-intro-feed’}) for d in c: f.append(d.find(’p’,{’class’:'intro-iterm__block'}).text)print(f)#爬取發(fā)布時(shí)間h=[]for j in b: res=requests.get(j,headers=headers) Soup=BeautifulSoup(res.text,’html.parser’) c=Soup.findAll(’div’,{’class’:’intro-iterm’}) for d in c: ff=(d.find(’span’,{’class’:'intro-iterm__txt'})) if ff==None: continue h.append(ff.text)print(h)# 爬取上傳作者m=[]for k in b: res=requests.get(k,headers=headers) Soup=BeautifulSoup(res.text,’html.parser’) c=Soup.find(’div’,{’id’:’block-P’}) d=Soup.find(’div’,{’class’:’qy-player-maker’}) try: name=c.get(’:uploader’).split(’,’)[1].split(’:’)[1].replace(’'’,’’)#輸出是字符串的格式,所以用split切割。replace替換 except: try: name=d.get(’:uploader’).split(’,’)[1].split(’:’)[1].replace(’'’,’’) except: m.append('匿名用戶') m.append(name)print(m)

上面的代碼輸出結(jié)果便是英文名的所有網(wǎng)址及其視頻中的一些信息

這里我需要講一下的是,為什么在爬取作者信息的模塊里我采取了try的方法,因?yàn)樵谖遗廊〉倪^(guò)程中我發(fā)現(xiàn),有的視頻的上傳作者在視頻左下方,有的在視頻的右下方,有的視頻干脆沒(méi)有上傳作者。

同樣的,你想要爬取其他內(nèi)容也可以用這種方法獲取URL和他的其他信息

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: 愛(ài)奇藝 Python
相關(guān)文章:
主站蜘蛛池模板: 三明市| 曲周县| 丹寨县| 鸡东县| 浦东新区| 习水县| 出国| 辰溪县| 宽城| 祁连县| 永寿县| 儋州市| 兴安县| 邹平县| 土默特右旗| 黑河市| 秀山| 贵阳市| 通榆县| 延安市| 平远县| 瓦房店市| 文昌市| 山西省| 武汉市| 黄浦区| 乌海市| 芦山县| 兴国县| 行唐县| 江口县| 张掖市| 晋城| 崇信县| 兴宁市| 渝北区| 泸溪县| 沅陵县| 盱眙县| 固安县| 托里县|