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)