1. 程式人生 > >Python爬取電影天堂資源

Python爬取電影天堂資源

步驟一:python的下載

python爬蟲,首先需要本地電腦上安裝有python

首先,進入到python官網,你可以直接輸入python主頁,也可以從百度搜索框進入到python的主頁

然後在主頁上面可以看見Downloads字樣,點選

跳轉出python下載介面,選擇一個版本進行下載,我這裡下載的是python3.6。

步驟二:爬蟲準備

爬蟲首先需要做的事情就是要確定好你想要爬取資料的物件,這裡我將以電影天堂裡面的電影為例進行講解。

首先,是開啟電影天堂主頁介面,然後把滑鼠移動到主頁左邊空白位置,點選滑鼠右鍵,然後點選檢視源,就可以看到網頁的原始碼,例如<a href="/html/gndy/dyzz/20180620/57001.html" class="ulink">2018年科幻動作《頭號玩家》HB中英雙字幕</a>


步驟三:開始爬蟲

爬蟲主要分為兩個部分,第一個是網頁介面的獲取,第二個是網頁介面的解析;爬蟲的原理是利用程式碼模擬瀏覽器訪問網站,與瀏覽器不同的是,爬蟲獲取到的是網頁的原始碼,沒有了瀏覽器的翻譯效果。

首先,我們進行頁面獲取,python爬蟲的話很多模組包提供給開發者直接抓取網頁,urllib,urllib2,requests(urllib3)等等,這裡我們使用requests進行網站頁面的獲取;首先匯入requests模組包import requests如果沒有下載,可以在命令控制行使用pip install requests下載。

匯入模組包之後,然後呼叫requests中的方法get連結網站,程式碼如下a_ur1 = 'http://www.ygdy8.net/html/gndy/dyzz/list_23_'+str(n)+'.html'

html_1 = requests.get(a_ur1)。

其中要注意html_1的編碼格式,

html_1.encoding = 'gb2312'

獲取到頁面的原始碼之後,然後接下來的工作就是將自己想要的資料從html介面原始碼中解析出來,解析介面的模組包有很多,原始的re,好用的BeautifulSoup,以及高大上的lxml等等,這裡我就簡單的用re介紹介紹,首先匯入re模組包:import re

然後進行利用re進行搜尋

detil_list = re.findall('<a href="(.*?)" class="ulink">',html_1.text)

這裡我有使用正則表示式,看不懂的同學需去補充點正則表示式方面的知識。

這樣就可以爬取到我們需要的第一個網頁原始碼(可以用for迴圈爬取更多的網站)

拿到多個網頁原始碼之後我們可以拿個列表把它存起來

detil_list = re.findall('<a href="(.*?)" class="ulink">',html_1.text)

然後利用原始碼進入網頁

 

    for m in detil_list:

        b_ur1 = 'http://www.ygdy8.net'+m

        html_2 = requests.get(b_ur1)

        html_2.encoding = 'gb2312'

然後利用正則表示式獲取我們想要的電影連線

ftp = re.findall('<a href="(.*?)">.*?</a></td>',html_2.text)

最後,就可以輸出爬到的電影連線了


原始碼

import requests,re

for n in range(1,3):

    a_ur1 = 'http://www.ygdy8.net/html/gndy/dyzz/list_23_'+str(n)+'.html'

    html_1 = requests.get(a_ur1)

    html_1.encoding = 'gb2312'

    detil_list = re.findall('< a href="(.*?)" class="ulink">',html_1.text)

    for m in detil_list:

        b_ur1 = 'http://www.ygdy8.net'+m

        html_2 = requests.get(b_ur1)

        html_2.encoding = 'gb2312'

        ftp = re.findall('< a href="(.*?)">.*?</ a></td>',html_2.text)

        print(ftp)