1. 程式人生 > >Python編寫網路爬蟲帶model

Python編寫網路爬蟲帶model

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