Python 爬虫批量下载美剧 from 人人影视 HR-HDTV
本人比較喜歡看美劇。尤其喜歡人人影視上HR-HDTV 的 1024 分辨率的高清雙字美劇,這里寫了一個腳本來批量獲得指定美劇的全部 HR-HDTV 的 ed2k下載鏈接。并依照先后順序寫入到文本文件,供下載工具進行批量下載。比方用迅雷。先打開迅雷,然后復制全部下載鏈接到剪切板,迅雷會監視剪切板來新建全部任務。假設迅雷沒有自己主動監視,能夠自己點擊新建然后粘貼鏈接。Python源碼例如以下。用的是Python3 :
# python3 實現,以下的實例 3 部美劇爬完大概要 10 s import urllib.request import redef get_links(url, name='yyets'):data = urllib.request.urlopen(url).read().decode()pattern = '"(ed2k://\|file\|[^"]+?\.(S\d+)(E\d+)[^"]+?1024X\d{3}[^"]+?)"' linksfind = set(re.findall(pattern, data)) linksdict = {} total = len(linksfind) for i in linksfind: linksdict[int(i[1][1:3]) * 100 + int(i[2][1:3])] = i with open(name + '.txt', 'w') as f: for i in sorted(list(linksdict.keys())): f.write(linksdict[i][0] + '\n') print(linksdict[i][0]) print("Get download links of: ", name, str(total)) if __name__ == '__main__': #---------- 越獄、無恥之徒、權力的游戲--------------------------- get_links('http://www.yyets.com/resource/10004', 'prision_break') get_links('http://www.yyets.com/resource/10760', 'shameless') get_links('http://www.yyets.com/resource/d10733','Game_of_Thrones') print('All is okay!')
這個 python 爬蟲比較短,就用到了 urllib.request 和 re 這兩個模塊,前者負責抓取網頁,后者負責解析文本。人人影視并沒有限制爬蟲訪問。所以這里無需改動 HTTP head的?User-Agent ,對于某些屏蔽爬蟲的網頁,就須要改動下?User-Agent ?這個值了。一個做法例如以下:用?urllib.request 中?Request 類的構造函數構造一個?Request 對象,構造函數中給自己給 headers (字典)中 User-Agent 屬性 賦值,然后將這個對象傳入到本模塊的 urlopen() 中。就能夠將爬蟲偽裝成一個瀏覽器進行網頁抓取了。比方。CSDN 就是屏蔽了爬蟲的。須要改動一下 User-Agent 的值,例如以下:
import urllib.requesturl = 'http://blog.csdn.net/csdn' head={'User-Agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'} req = urllib.request.Request(url, headers=head) data = urllib.request.urlopen(req, timeout=2).read().decode() print(data)抓取完網頁就是對 HTML 文檔的解析了。這里使用的是正則表達式模塊,對于特定單一的內容很方便。假設須要較復雜的解析能夠用?pyquery?或者?Beautiful Soup, 它們是用Python寫的 HTML/XML 的解析器。當中?pyquery 是 jquery 風格,更加的好用。
關于正則表達式這里推薦一個工具 RegexBuddy ,擁有強大的正則表達式調試功能,上面腳本中的正則表達式就使用了這個工具進行調試。這篇關于Python正則的博文非常不錯:?Python 正則表達式指南。
想進一步加強爬蟲的功能,能夠用爬蟲框架 Scrapy,這是 Scrapy 的官方tutoria?。還有就是,假設網頁內容多是 javascript 生成。那么就須要一個 js 引擎了,PyV8 能夠拿來試試,再有就是基于 js 做爬蟲。如用?casperJS 和 phantomJS.
【地址:http://blog.csdn.net/thisinnocence/article/details/39997883】
轉載于:https://www.cnblogs.com/wzzkaifa/p/6749343.html
總結
以上是生活随笔為你收集整理的Python 爬虫批量下载美剧 from 人人影视 HR-HDTV的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机、信息安全、密码学类免费期刊
- 下一篇: 数字集成电路:CMOS反相器(一)静态特