python爬蟲批量獲取最新電影資源

目標(biāo)網(wǎng)站:http://www.dy2018.com/
這是我們要下載的最新資源在這個頁面:http://www.dy2018.com/html/gndy/dyzz/index.html

image.png

前提

  • 安裝 python, 版本 3.5 以上
  • 安裝 pip (有些 python 安裝包里面已經(jīng)自帶了)
  • 然后用 pip 安裝 requests,在命令行輸入命令:pip install requests
  • 用 pip 安裝 requests_cache: pip install requests_cache

初步嘗試

好了掐隐,我們新建個腳本文件叫 t.py:

import requests
import requests_cache

requests_cache.install_cache('demo_cache') # 為 requests 建立緩存商架,避免每次執(zhí)行都去請求一次網(wǎng)頁,造成時間浪費

# 把我們的爬蟲偽裝成瀏覽器,否則服務(wù)器會拒絕你的請求
headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',
}

response = requests.get("http://www.dy2018.com/html/gndy/dyzz/index.html", headers=headers)
html_doc = response.content.decode('gbk') # 由于此網(wǎng)頁是 gb2312 編碼的,需要轉(zhuǎn)碼成 utf8,但 python 貌似不支持 gb2312状飞,所以用 gbk
print(html_doc)

在命令行運行一次 python t.py,我們就可以看到它輸出了網(wǎng)頁源碼书斜,第一步算是完成了诬辈。

提取列表頁URL

打開剛才的網(wǎng)頁,因為一開始會有廣告荐吉,所以我們先在任意位置點擊一下這個頁面焙糟,讓廣告彈出來就可以了。

然后鼠標(biāo)移向電影標(biāo)題 --> 右鍵點擊 --> 點擊【檢查元素】或【Inspect】(如果你的游覽器沒有這個功能样屠,請下載基于 Chrome 的瀏覽器穿撮,如 360瀏覽器等)

然后我們會看到這樣的界面:

image.png

紅箭頭所指就是本頁所有電影標(biāo)題都有的類名,待會我們就可以根據(jù)這個類名一次性提取出所有電影標(biāo)題了痪欲,見代碼:

import requests
import os
import requests_cache

from bs4 import BeautifulSoup

requests_cache.install_cache('demo_cache')

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',
}

response = requests.get("http://www.dy2018.com/html/gndy/dyzz/index.html", headers=headers)
html_doc = response.content.decode('gbk')
# print(html_doc)

soup = BeautifulSoup(html_doc, 'lxml')
links = []
for a in soup.select('.ulink'):
     + a['href']
    title = a.string
    links.append(href)
    print(href, title)

要想正確運行這段代碼悦穿,你還得先安裝一些 python 庫:

pip install lxml 
pip install beautifulsoup4

然后再次執(zhí)行 python t.py 就會看到如下輸出:

http://www.dy2018.com/i/98372.html 2017年國產(chǎn)喜劇片《父子雄兵》HD國語中字
http://www.dy2018.com/i/98369.html 2017年國產(chǎn)奇幻片《鮫珠傳》HD高清國語中英雙字
http://www.dy2018.com/i/98364.html 2017年歐美科幻片《變形金剛5最后的騎士》HD韓版中英雙字
......更多的就不列出來了

從列表頁進(jìn)入電影頁,并提取下載鏈接

我們先鼠標(biāo)點進(jìn)電影頁业踢,然后通過檢查元素(上一步有介紹)咧党,得到下載鏈接的元素選擇器,當(dāng)然這次的有點復(fù)雜陨亡,不像上一步那么直觀,還需要自己推導(dǎo)深员,具體過程就不說了负蠕,直接給出結(jié)果:#Zoom table a

這一次在代碼中,我們需要通過上一步獲得的 links 數(shù)組分別進(jìn)入每個電影頁倦畅,然后拿到下載鏈接遮糖,部分代碼如下:

for link in links:
    response = requests.get(link, headers=headers)
    html_doc = response.content.decode('gbk')
    soup = BeautifulSoup(html_doc, 'lxml')
    ftp_element = soup.select('#Zoom table a')[0] ### 注釋1
    download_link = ftp_element['href']
    print(download_link)
    time.sleep(random.randint(1, 2)) ### 注釋2

注意:
注釋1,由于 select() 的結(jié)果是一個數(shù)組叠赐,所以我們需要選擇第一個元素
注釋2欲账,每次請求一次就讓程序睡眠1~2秒,是為了不給對方服務(wù)器造成太大壓力

再次執(zhí)行 python t.py 就可以看到我們要的下載鏈接了:

ftp://d:d@dygodj8.com:12311/[電影天堂www.dy2018.com]父子雄兵HD國語中字.mkv
ftp://d:d@dygodj8.com:12311/[電影天堂www.dy2018.com]鮫珠傳HD高清國語中英雙字.mkv
ftp://d:d@dygodj8.com:12311/[電影天堂www.dy2018.com]變形金剛5最后的騎士HD韓版中英雙字.mkv
ftp://y:y@dygod18.com:15132/[電影天堂www.dy2018.com]加勒比海盜5:死無對證HD高清中英雙字.rmvb
......更多的就不貼出來了

當(dāng)然上面那段代碼直接拿去是執(zhí)行不了的芭概,

完整代碼如下:

import requests
import os
import random
import time
import requests_cache

from bs4 import BeautifulSoup

requests_cache.install_cache('demo_cache')

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36',
}

response = requests.get("http://www.dy2018.com/html/gndy/dyzz/index.html", headers=headers)
html_doc = response.content.decode('gbk')
# print(html_doc)

soup = BeautifulSoup(html_doc, 'lxml')
links = []
for a in soup.select('.ulink'):
     + a['href']
    title = a.string
    links.append(href)
    # print(href, title)

for link in links:
    response = requests.get(link, headers=headers)
    html_doc = response.content.decode('gbk')
    soup = BeautifulSoup(html_doc, 'lxml')
    ftp_element = soup.select('#Zoom table a')[0]
    download_link = ftp_element['href']
    print(download_link)
    time.sleep(random.randint(1, 2))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赛不,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子罢洲,更是在濱河造成了極大的恐慌踢故,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異殿较,居然都是意外死亡耸峭,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門淋纲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來劳闹,“玉大人,你說我怎么就攤上這事洽瞬”咎椋” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵片任,是天一觀的道長偏友。 經(jīng)常有香客問我,道長对供,這世上最難降的妖魔是什么位他? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮产场,結(jié)果婚禮上鹅髓,老公的妹妹穿的比我還像新娘。我一直安慰自己京景,他們只是感情好窿冯,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著确徙,像睡著了一般醒串。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鄙皇,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天芜赌,我揣著相機(jī)與錄音,去河邊找鬼伴逸。 笑死缠沈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的错蝴。 我是一名探鬼主播洲愤,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼顷锰!你這毒婦竟也來了柬赐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤官紫,失蹤者是張志新(化名)和其女友劉穎躺率,沒想到半個月后玛界,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡悼吱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年慎框,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片后添。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡笨枯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出遇西,到底是詐尸還是另有隱情馅精,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布粱檀,位于F島的核電站洲敢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茄蚯。R本人自食惡果不足惜压彭,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渗常。 院中可真熱鬧壮不,春花似錦、人聲如沸皱碘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽癌椿。三九已至健蕊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間踢俄,已是汗流浹背绊诲。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留褪贵,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓抗俄,卻偏偏與公主長得像脆丁,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子动雹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容

  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,454評論 6 428
  • GitHub 上有一個 Awesome - XXX 系列的資源整理,資源非常豐富槽卫,涉及面非常廣。awesome-p...
    若與閱讀 18,630評論 4 418
  • 環(huán)境管理管理Python版本和環(huán)境的工具胰蝠。p–非常簡單的交互式python版本管理工具歼培。pyenv–簡單的Pyth...
    MrHamster閱讀 3,790評論 1 61
  • 一個概念的掌握需要溫故而知新的持續(xù)震蒋,今天的文章是這周概念的總結(jié),原以為概念已經(jīng)記得很清楚了躲庄,沒想到看到“你越弱查剖,你...
    問之成兮閱讀 130評論 0 0
  • 旁白:看似平靜的一天,根本不平靜噪窘。只因為在早上A大學(xué)心理系發(fā)生了一件事情笋庄,故事便由此開始。 旁白:早晨學(xué)長剛剛晨跑...
    千詭閱讀 304評論 0 0