Python編寫網路爬蟲帶model
阿新 • • 發佈:2018-11-29
Python編寫網路爬蟲帶model
以http://zuidazy.net電影網站為例,實現步驟如下:
一、分析網站:
分析網站的程式碼結構:如網址,需要採集的程式碼取,建設使用谷歌瀏覽器
如圖:
解釋:1.為網址欄,分析網址的相同部分及不同部分
2.為按F12檢視原始碼,為需要採集的程式碼
二、編寫網站所有網頁的遍歷如下(檔名稱:index.py)
from reptileTest import qu url="" for i in range(1,423): if i==1: url="/?m=vod-index.html" else: url="/?m=vod-index-pg-"+str(i)+".html" qu(url,i)
注:該段程式碼為對網站所有網站的完整遍歷,以方便獲取所有電影的真實路徑
三、編寫向指定網站發起訪問請求(檔名稱:reptileTest.py)
import urllib.request from requl import requ def qu(jia,ii): print("正在獲取第:" + str(ii) + "頁的電影資訊") url = "http://zuidazy.net"+jia req = urllib.request.Request(url) res = urllib.request.urlopen(req) html = res.read().decode("utf-8", 'ignore') # print(html) requ(html) print("獲取第:"+str(ii)+"頁的電影資訊結束")
四、使用BeautifulSoup進行最終的抓取(檔名稱:requl.py)
import urllib.request from bs4 import BeautifulSoup def requ(html): web = BeautifulSoup(html, features="html.parser") # print("開始抓取") daima = web.select("ul > li > span > a") for h in daima: # 通過主頁進入某個電影的資訊頁面 # 抓取新的url 這次抓取,需要抓取電影的:圖片路徑,電影名稱,主演,型別,及播放地址等 url1 = "http://zuidazy.net/" + h.get("href") req1 = urllib.request.Request(url1) res1 = urllib.request.urlopen(req1) html1 = res1.read().decode("utf-8", 'ignore') web1 = BeautifulSoup(html1, features="html.parser") # daima1 = web1.select("div[class=vodInfo]") # print(daima1) # 獲取電影圖片 daima1 = web1.select("img[class=lazy]") for dao in daima1: dao.get("src") print("該電影的圖片地址:------------"+dao.get("src")) # 獲取電影名稱 daima1 = web1.select("div[class=vodh] > h2") for dai in daima1: print(dai.get_text()) # 獲取播放型別 daima1 = web1.select("div[class=vodh] > span") for dai in daima1: print(dai.get_text()) # 獲取評分 daima1 = web1.select("div[class=vodh] > label") for dai in daima1: print(dai.get_text()) # 獲取別名 daima1 = web1.select("div[class=vodinfobox] > ul > li:nth-of-type(1) > span") for dai in daima1: print(dai.get_text()) # 獲取導演 daima1 = web1.select("div[class=vodinfobox] > ul > li:nth-of-type(2) > span") for dai in daima1: print(dai.get_text()) # 獲取主演 daima1 = web1.select("div[class=vodinfobox] > ul > li:nth-of-type(3) > span") for dai in daima1: print(dai.get_text()) # 獲取電影型別 daima1 = web1.select("div[class=vodinfobox] > ul > li:nth-of-type(4) > span") for dai in daima1: print(dai.get_text()) # 網站圖片程式碼 # <img class="lazy" src="http://tupian.tupianzy.com/pic/upload/vod/2018-10-04/201810041538621879.jpg" alt="青春豬頭少年不會夢到兔女郎學姐">
抓取結束:
model原始檔下載地址:Python編寫網路爬蟲帶model
請下載這個model: Python編寫網路爬蟲優化版model