教你怎么用python爬取愛奇藝熱門電影
一、首先我們要找到目標(biāo)
找到目標(biāo)先分析一下網(wǎng)頁(url:https://list.iqiyi.com/www/1/-------------11-1-1-iqiyi–.html),很幸運(yùn)這個(gè)只有一個(gè)網(wǎng)頁,不需要翻頁。
二、F12查看網(wǎng)頁源代碼
找到目標(biāo),分析如何獲取需要的數(shù)據(jù)。找到href與電影名稱
三、進(jìn)行代碼實(shí)現(xiàn),獲取想要資源。
''' 爬取愛奇藝電影與地址路徑 操作步驟 1,獲取到url內(nèi)容 2,css選擇其選擇內(nèi)容 3,保存自己需要數(shù)據(jù) ''' #導(dǎo)入爬蟲需要的包 import requests from bs4 import BeautifulSoup #requests與BeautifulSoup用來解析網(wǎng)頁的 import time #設(shè)置訪問網(wǎng)頁時(shí)間,防止自己IP訪問多了被限制拒絕訪問 import re class Position(): def __init__(self,position_name,position_require,):#構(gòu)建對象屬性 self.position_name=position_name self.position_require=position_require def __str__(self): return '%s%s/n'%(self.position_name,self.position_require)#重載方法將輸入變量改成字符串形式 class Aiqiyi(): def iqiyi(self,url): head= { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47" } #模擬的服務(wù)器頭 html = requests.get(url,headers=head) #headers=hard 讓腳本以瀏覽器的方式去訪問,有一些網(wǎng)址禁止以python的反爬機(jī)制,這就是其中一個(gè) soup = BeautifulSoup(html.content, 'lxml', from_encoding='utf-8') # BeautifulSoup打看網(wǎng)頁 soupl = soup.select(".qy-list-wrap") # 查找標(biāo)簽,用css選擇器,選擇自己需要數(shù)據(jù) 進(jìn)行選擇頁面第一次內(nèi)容(標(biāo)簽要找到唯一的,找id好,如果沒有考慮其他標(biāo)簽如class) results = [] # 創(chuàng)建一個(gè)列表用來存儲數(shù)據(jù) for e in soupl: biao = e.select('.qy-mod-li') # 進(jìn)行二次篩選 for h in biao: p=Position(h.select_one('.qy-mod-link-wrap').get_text(strip=True), h.select_one('.title-wrap').get_text(strip=True))#調(diào)用類轉(zhuǎn)換(繼續(xù)三次篩選選擇自己需要內(nèi)容) results.append(p) return results # 返回內(nèi)容 def address(self,url): #保存網(wǎng)址 head = { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47" } # 模擬的服務(wù)器頭 html = requests.get(url, headers=head) soup = BeautifulSoup(html.content, 'lxml', from_encoding='utf-8') # BeautifulSoup打看網(wǎng)頁 alist = soup.find('div', class_='qy-list-wrap').find_all("a") # 查找div塊模塊下的 a標(biāo)簽 ls=[] for i in alist: ls.append(i.get('href')) return ls if __name__ == '__main__': time.sleep(2) #設(shè)置2秒訪問一次 a=Aiqiyi() url = "https://list.iqiyi.com/www/1/-------------11-1-1-iqiyi--.html" with open(file='e:/練習(xí).txt ', mode='a+') as f: # e:/練習(xí).txt 為我電腦新建的文件,a+為給內(nèi)容進(jìn)行添加,但不進(jìn)行覆蓋原內(nèi)容。 for item in a.iqiyi(url): line = f'{item.position_name}\t{item.position_require}\n' f.write(line) # 采用方法 print("下載完成") with open(file='e:/地址.txt ', mode='a+') as f: # e:/練習(xí).txt 為我電腦新建的文件,a+為給內(nèi)容進(jìn)行添加,但不進(jìn)行覆蓋原內(nèi)容。 for item in a.address(url): line=f'https{item}\n' f.write(line) # 采用方法 print("下載完成")
四、查看現(xiàn)象
到此這篇關(guān)于教你怎么用python爬取愛奇藝熱門電影的文章就介紹到這了,更多相關(guān)python爬取電影內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python dict remove數(shù)組刪除(del,pop)
我們在用數(shù)組列表做刪除的時(shí)候,可能選擇2個(gè)方法,一個(gè)是del,一個(gè)是pop方法2013-03-03Python之ThreadPoolExecutor線程池問題
這篇文章主要介紹了Python之ThreadPoolExecutor線程池問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Python基于pip實(shí)現(xiàn)離線打包過程詳解
這篇文章主要介紹了Python基于pip實(shí)現(xiàn)離線打包過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Python3 常用數(shù)據(jù)標(biāo)準(zhǔn)化方法詳解
這篇文章主要介紹了Python3 常用數(shù)據(jù)標(biāo)準(zhǔn)化方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03PyTorch中tensor.backward()函數(shù)的詳細(xì)介紹及功能實(shí)現(xiàn)
backward()?函數(shù)是PyTorch框架中自動求梯度功能的一部分,它負(fù)責(zé)執(zhí)行反向傳播算法以計(jì)算模型參數(shù)的梯度,這篇文章主要介紹了PyTorch中tensor.backward()函數(shù)的詳細(xì)介紹,需要的朋友可以參考下2024-02-02python 實(shí)現(xiàn)Harris角點(diǎn)檢測算法
這篇文章主要介紹了python 實(shí)現(xiàn)Harris角點(diǎn)檢測算法,幫助大家更好的利用python處理圖像,感興趣的朋友可以了解下2020-12-12