1. 程式人生 > >爬取電影天堂的電影資訊

爬取電影天堂的電影資訊

今天做了一早上的爬蟲,爬去電影天堂的電影連結。使用了正則表示式。總的來說來不錯。上程式碼。已經實現的功能:

1.抓取電影釋出的日期
2.電影的名字
3.電影的年代
4.電影的產地
5.電影的類別
6:電影的字幕

目前還在考慮,需不需要這麼多的欄位。
也還遇到一些問題,比如 想抓取豆瓣評分。但是電影天堂的網頁佈局,有些不一樣。很明顯是兩個人寫的。。 尷尬!!

想要達到的預期目標,抓取電影名字,類別,海報,下載地址。
這些都基本上都完成了。
上一段程式碼:

from urllib.request import urlopen
from urllib.error import
HTTPError from bs4 import BeautifulSoup from time import sleep import re moviesLinks = set() #全域性變數,來儲存主網頁的連結 def getLinks(pageUrl): global moviesLinks html = urlopen(pageUrl) bs4 = BeautifulSoup(html,"xml") #print(bs4.prettify()) for link in bs4.findAll("a",{"href"
:re.compile("/html/gndy/+[a-z]+/[0-9]+/[0-9]+\.html")}): #正則表示式選取電影連結(過濾掉遊戲下載連結,動漫連結,綜藝連結) if link.attrs['href'] not in moviesLinks: newLink = link.attrs['href'] print(newLink) moviesLinks.add(newLink) getPageImformation(newLink) def getPageImformation
(pageUrl):
url = 'http://www.dytt8.net/'+pageUrl html = urlopen(url) bs4 = BeautifulSoup(html,"xml") try: date = bs4.find("div",{"class":"co_content8"}).ul.get_text().strip() #此時date還含有其他的東西 date = date.split('\n')[0] #這裡就已經處理好了 except AttributeError: print("一部分網頁不是電影介紹的網頁而已,不用擔心") try: poster = bs4.find("div",{"id":"Zoom"}).img.attrs['src'] print(poster) except AttributeError: print('一部分網頁沒有海報而已,不用擔心') #這部分要進行 一些訊息處理了(這網站寫的 six six) try: name = bs4.find("div",{"id":"Zoom"}).p.get_text().split('◎')[1][4:].strip() #名字的處理 except Exception: print("一部分網頁不是電影介紹的網頁而已,不用擔心") try: time = bs4.find("div",{"id":"Zoom"}).p.get_text().split('◎')[3][4:].strip() except Exception: print("一部分網頁不是電影介紹的網頁而已,不用擔心") try: origin = bs4.find("div",{"id":"Zoom"}).p.get_text().split('◎')[4][4:].strip() print(origin) except Exception: print("一部分網頁這個屬性而已,不用擔心") try: category = bs4.find("div",{"id":"Zoom"}).p.get_text().split('◎')[5][4:].strip() print(category) except Exception: print("一部分網頁這個屬性而已,不用擔心") print("--------------------------------\n") try: downloadLink = bs4.find("td",{"bgcolor":"#fdfddf"}).a.get_text() print(downloadLink) except Exception: print("一些頁面不是影片介紹的頁面而已,不用擔心") getLinks('http://www.dytt8.net/') # 3是年代 # 4是產地 # 5是類別 # 6是語言 # 7是字幕 # 8IMDb評分 #