① python爬蟲抓取電影top20排名怎麼寫
初步接觸python爬蟲(其實python也是才起步),發現一段代碼研究了一下,覺得還比較有用處,Mark下。
上代碼:
#!/usr/bin/python#coding=utf-8#Author: Andrew_liu#mender:cy"""
一個簡單的Python爬蟲, 用於抓取豆瓣電影Top前100的電影的名稱
Anthor: Andrew_liu
mender:cy
Version: 0.0.2
Date: 2017-03-02
Language: Python2.7.12
Editor: JetBrains PyCharm 4.5.4
"""import stringimport reimport urllib2import timeclass DouBanSpider(object) :
"""類的簡要說明
主要用於抓取豆瓣Top100的電影名稱
Attributes:
page: 用於表示當前所處的抓取頁面
cur_url: 用於表示當前爭取抓取頁面的url
datas: 存儲處理好的抓取到的電影名稱
_top_num: 用於記錄當前的top號碼
"""
def __init__(self):
self.page = 1
self.cur_url = "h0?start={page}&filter=&type="
self.datas = []
self._top_num = 1
print u"豆瓣電影爬蟲准備就緒, 准備爬取數據..."
def get_page(self, cur_page):
"""
根據當前頁碼爬取網頁HTML
Args:
cur_page: 表示當前所抓取的網站頁碼
Returns:
返回抓取到整個頁面的HTML(unicode編碼)
Raises:
URLError:url引發的異常
"""
url = self.cur_url try:
my_page = urllib2.urlopen(url.format(page=(cur_page - 1) * 25)).read().decode("utf-8") except urllib2.URLError, e: if hasattr(e, "code"): print "The server couldn't fulfill the request."
print "Error code: %s" % e.code elif hasattr(e, "reason"): print "We failed to reach a server. Please check your url and read the Reason"
print "Reason: %s" % e.reason return my_page def find_title(self, my_page):
"""
通過返回的整個網頁HTML, 正則匹配前100的電影名稱
Args:
my_page: 傳入頁面的HTML文本用於正則匹配
"""
temp_data = []
movie_items = re.findall(r'<span.*?class="title">(.*?)</span>', my_page, re.S) for index, item in enumerate(movie_items): if item.find(" ") == -1:
temp_data.append("Top" + str(self._top_num) + " " + item)
self._top_num += 1
self.datas.extend(temp_data) def start_spider(self):
"""
爬蟲入口, 並控制爬蟲抓取頁面的范圍
"""
while self.page <= 4:
my_page = self.get_page(self.page)
self.find_title(my_page)
self.page += 1def main():
print u"""
###############################
一個簡單的豆瓣電影前100爬蟲
Author: Andrew_liu
mender: cy
Version: 0.0.2
Date: 2017-03-02
###############################
"""
my_spider = DouBanSpider()
my_spider.start_spider()
fobj = open('/data/moxiaokai/HelloWorld/cyTest/blogcode/top_move.txt', 'w+') for item in my_spider.datas: print item
fobj.write(item.encode("utf-8")+'
')
time.sleep(0.1) print u"豆瓣爬蟲爬取完成"if __name__ == '__main__':
main()
運行結果:
② python抓取、解析、下載小電影……
掌握正確的技能,小電影亦是唾手可得!
周末,總是想要做些有趣的事情,比如分享的 Arino 開發,比如上周的博客爬蟲,今天我決定來點不一樣的——教你如何使用 Python 爬取 m3u8 視頻資源。但請記住,技術雖好,卻不能用來違法,否則麻煩可就大了。
在深入講解之前,讓我們先來了解一些基礎知識。m3u8 是一種網路串流格式,平時我們可能通過它觀看直播,但今天我們要深入探討它的奧秘。
m3u8 是什麼?
在此之前,我只知道 m3u8 是一種網路串流格式,用於在線觀看直播,但今天要分享這個主題時,我開始系統地搜集有關 m3u8 的知識點,發現網路和知乎上的資料都非常寶貴。以下是我們從知乎了解到的一些關鍵信息。
m3u8 通常分為單碼率(固定解析度)和多碼率(包含多種解析度)兩種。單碼率 m3u8 文件內容類似於:
而多碼率 m3u8 文件則包含多個單碼率鏈接:
理解 m3u8 文件結構對於接下來的操作至關重要。讓我們從 m3u8 文件指令說起。
m3u8 文件指令
m3u8 的文件指令有其國際標准,深入了解這些指令可以幫助我們更有效地解析文件。下面是一些常見的 m3u8 文件指令及其含義。
解析 m3u8 文件
解析 m3u8 文件的關鍵在於理解文件結構,並根據內容設計解析邏輯。使用 requests 庫模擬調用並分析響應結果,可以更直觀地獲取信息。
接下來,讓我們通過具體的 Python 代碼實現 m3u8 文件的解析和下載。
解析與下載過程
獲取目標視頻資源的索引文件(m3u8 文件)通常需要使用瀏覽器的開發者工具。通過 F12 打開瀏覽器控制台,選擇 Network,刷新頁面,找到 index.m3u8 文件。
在眾多 m3u8 文件中,我們需要找到包含 ts 視頻資源的文件。這里以葫蘆娃視頻為例,獲取 m3u8 文件地址。
解析 m3u8 文件,獲取 ts 視頻地址,並解密(如果視頻資源已加密)。
下載並解密視頻資源
使用 Python 代碼實現視頻資源的下載和解密,確保視頻資源完整無誤。
合並視頻文件
將獲取的 ts 視頻文件合並成一個完整的 MP4 文件。
至此,我們完成了 Python 爬取 m3u8 視頻資源的示例。今天的內容相當全面,目標也實現了。
完整代碼示例
運行這段代碼,你將得到葫蘆娃的完整視頻。當然,如果你能找到其他資源,同樣可以使用這段代碼。
總結
今天的視頻爬蟲簡單明了,技術核心點不多,主要包括解析 m3u8 文件、獲取 ts 視頻地址、下載並解密視頻資源等步驟。對於 Python 基礎稍有了解的開發者來說,實現起來並不困難。
作為 Python 的愛好者,我一直對它充滿好感,特別是用於腳本開發時,它提供了極大的便利性。從數據處理到爬蟲應用,Python 都能發揮重要作用,提升工作效率。
再次強調,技術無罪,但請勿使用技術進行違法活動,否則只會給自己帶來麻煩。希望這段教程能幫助你更好地理解 Python,並在合法范圍內發揮技術的力量。
③ 怎樣用python獲取電影
實驗室這段時間要採集電影的信息,給出了一個很大的數據集,數據集包含了4000多個電影名,需要我寫一個爬蟲來爬取電影名對應的電影信息。
其實在實際運作中,根本就不需要爬蟲,只需要一點簡單的Python基礎就可以了。
前置需求:
Python3語法基礎
HTTP網路基礎
===================================
第一步,確定API的提供方。IMDb是最大的電影資料庫,與其相對的,有一個OMDb的網站提供了API供使用。這家網站的API非常友好,易於使用。
第二步,確定網址的格式。
第三步,了解基本的Requests庫的使用方法。
④ Python爬蟲實戰,Python多線程抓取5千多部最新電影下載鏈接
利用Python多線程爬了5000多部最新電影下載鏈接,廢話不多說~
讓我們愉快地開始吧~
Python版本: 3.6.4
相關模塊:
requests模塊;
re模塊;
csv模塊;
以及一些Python自帶的模塊。
安裝Python並添加到環境變數,pip安裝需要的相關模塊即可。
拿到鏈接之後,接下來就是繼續訪問這些鏈接,然後拿到電影的下載鏈接
但是這里還是有很多的小細節,例如我們需要拿到電影的總頁數,其次這么多的頁面,一個線程不知道要跑到什麼時候,所以我們首先先拿到總頁碼,然後用多線程來進行任務的分配
我們首先先拿到總頁碼,然後用多線程來進行任務的分配
總頁數其實我們用re正則來獲取
爬取的內容存取到csv,也可以寫個函數來存取
開啟4個進程來下載鏈接
您學廢了嗎?最後祝大家天天進步!!學習Python最重要的就是心態。我們在學習過程中必然會遇到很多難題,可能自己想破腦袋都無法解決。這都是正常的,千萬別急著否定自己,懷疑自己。如果大家在剛開始學習中遇到困難,想找一個python學習交流環境,可以加入我們,領取學習資料,一起討論,會節約很多時間,減少很多遇到的難題。