Python抓取電影天堂電影信息的代碼
更新時間:2016年04月07日 21:36:30 作者:itjh
最近想做一個電影資訊的App,由于豆瓣不對外開發(fā)API了,正愁怎么錄入數(shù)據(jù)呢。最近在學 Python 想想那就用它來抓取電影信息吧
Python2.7Mac OS
抓取的是電影天堂里面最新電影的頁面。鏈接地址: http://www.dytt8.net/html/gndy/dyzz/index.html
獲取頁面的中電影詳情頁鏈接
import urllib2 import os import re import string # 電影URL集合 movieUrls = [] # 獲取電影列表 def queryMovieList(): url = 'http://www.dytt8.net/html/gndy/dyzz/index.html' conent = urllib2.urlopen(url) conent = conent.read() conent = conent.decode('gb2312','ignore').encode('utf-8','ignore') pattern = re.compile ('<div class="title_all"><h1><font color=#008800>.*?</a>></font></h1></div>'+ '(.*?)<td height="25" align="center" bgcolor="#F4FAE2"> ',re.S) items = re.findall(pattern,conent) str = ''.join(items) pattern = re.compile ('<a href="(.*?)" class="ulink">(.*?)</a>.*?<td colspan.*?>(.*?)</td>',re.S) news = re.findall(pattern, str) for j in news: movieUrls.append('http://www.dytt8.net'+j[0])
抓取詳情頁中的電影數(shù)據(jù)
def queryMovieInfo(movieUrls): for index, item in enumerate(movieUrls): print('電影URL: ' + item) conent = urllib2.urlopen(item) conent = conent.read() conent = conent.decode('gb2312','ignore').encode('utf-8','ignore') movieName = re.findall(r'<div class="title_all"><h1><font color=#07519a>(.*?)</font></h1></div>', conent, re.S) if (len(movieName) > 0): movieName = movieName[0] + "" # 截取名稱 movieName = movieName[movieName.find("《") + 3:movieName.find("》")] else: movieName = "" print("電影名稱: " + movieName.strip()) movieContent = re.findall(r'<div class="co_content8">(.*?)</tbody>',conent , re.S) pattern = re.compile('<ul>(.*?)<tr>', re.S) movieDate = re.findall(pattern,movieContent[0]) if (len(movieDate) > 0): movieDate = movieDate[0].strip() + '' else: movieDate = "" print("電影發(fā)布時間: " + movieDate[-10:]) pattern = re.compile('<br /><br />(.*?)<br /><br /><img') movieInfo = re.findall(pattern, movieContent[0]) if (len(movieInfo) > 0): movieInfo = movieInfo[0]+'' # 刪除<br />標簽 movieInfo = movieInfo.replace("<br />","") # 根據(jù) ◎ 符號拆分 movieInfo = movieInfo.split('◎') else: movieInfo = "" print("電影基礎信息: ") for item in movieInfo: print(item) # 電影海報 pattern = re.compile('<img.*? src="(.*?)".*? />', re.S) movieImg = re.findall(pattern,movieContent[0]) if (len(movieImg) > 0): movieImg = movieImg[0] else: movieImg = "" print("電影海報: " + movieImg) pattern = re.compile('<td style="WORD-WRAP: break-word" bgcolor="#fdfddf"><a href="(.*?)">.*?</a></td>', re.S) movieDownUrl = re.findall(pattern,movieContent[0]) if (len(movieDownUrl) > 0): movieDownUrl = movieDownUrl[0] else: movieDownUrl = "" print("電影下載地址:" + movieDownUrl + "") print("------------------------------------------------\n\n\n")
執(zhí)行抓取
if __name__=='__main__': print("開始抓取電影數(shù)據(jù)"); queryMovieList() print(len(movieUrls)) queryMovieInfo(movieUrls) print("結(jié)束抓取電影數(shù)據(jù)")
總結(jié)
學好正則表達式很重要,很重要,很重要!!!! Python的語法好有感覺, 對比Java …
您可能感興趣的文章:
- 使用Python多線程爬蟲爬取電影天堂資源
- 基于python實現(xiàn)的抓取騰訊視頻所有電影的爬蟲
- 編寫Python爬蟲抓取豆瓣電影TOP100及用戶頭像的方法
- python實現(xiàn)去除下載電影和電視劇文件名中的多余字符的方法
- python實現(xiàn)根據(jù)用戶輸入從電影網(wǎng)站獲取影片信息的方法
- python正則表達式爬取貓眼電影top100
- 使用python實現(xiàn)抓取騰訊視頻所有電影的爬蟲
- python使用requests模塊實現(xiàn)爬取電影天堂最新電影信息
- Python爬取APP下載鏈接的實現(xiàn)方法
- Python3.6實現(xiàn)根據(jù)電影名稱(支持電視劇名稱),獲取下載鏈接的方法
相關文章
Python GUI編程學習筆記之tkinter界面布局顯示詳解
這篇文章主要介紹了Python GUI編程學習筆記之tkinter界面布局顯示,結(jié)合實例形式分析了Python GUI編程中tkinter界面布局顯示的相關操作技巧與使用注意事項,需要的朋友可以參考下2020-03-03python 讀txt文件,按‘,’分割每行數(shù)據(jù)操作
這篇文章主要介紹了python 讀txt文件,按‘,’分割每行數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07一行python實現(xiàn)樹形結(jié)構(gòu)的方法
今天小編就為大家分享一篇一行python實現(xiàn)樹形結(jié)構(gòu)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08