2017-01-19 28 views
-5

如何從imdb borntoday頁面提取信息?beautifulsoup imdb borntoday頁面

我看了這個問題,並沒有在那裏回答。

Webscraping an IMDb page using BeautifulSoup

我曾嘗試下面的代碼

import urllib2 
from bs4 import BeautifulSoup 

test_url='https://m.imdb.com/feature/bornondate' 

url=urllib2.urlopen(test_url) 
html_text=url.read() 

soup=BeautifulSoup(html_text) 


poster=soup.find('a','poster') 
print poster 
print type(poster) 
print type(soup) 
print html_text 
url.close() 

我試圖保持邏輯循環之前找到ATLEAST一個元素。

html頁面內容如下。輸出海報和類型(海報)給我沒有。請幫助我在代碼中缺少的地方。

<section class="posters list"> 
<h1>January 18</h1> 

<a href="/name/nm0000126/" class="poster "><img src="https://images-na.ssl-images-amazon.com/images/M/[email protected]_V1._CR0,0,419,618_SX40_SY59.jpg" style="background:url('http://i.media-imdb.com/images/mobile/people-40x59-fade.png')" width="40" height="59"><div class="label"><span class="title">Kevin Costner</span><div class="detail">Actor, "Dances with Wolves"</div></div></a> 

謝謝, Phani。

+2

請發表您已經嘗試的代碼。 –

+0

檢查答案。那是你在找什麼? – MYGz

+0

是的,我只想要前十名演員。我正面臨一些導入dryscrape的問題,但看起來像你發佈的代碼應該工作。另外我明白,動態內容html提取不可能與美麗的。感謝您的迴應。 – ppeddi

回答

0

這將只爲第一頁上的演員。如果你想要所有的演員,你將不得不使用selenium或其他一些圖書館。

驗證日期是否爲0dd何時是單個數字。

你可以嘗試這樣的事情與dryscrape第一頁上的演員/女演員:

import re 
import dryscrape 
from bs4 import BeautifulSoup 
from datetime import datetime 

todays_date = datetime.today().strftime('%B %d') 

test_url='https://m.imdb.com/feature/bornondate' 
sess = dryscrape.Session() 
sess.visit(test_url) 
soup = BeautifulSoup(sess.body()) 
l1 = [a.strip() for a in soup.text.split('\n') if a.strip()] 
idx = l1.index(todays_date) 
l2 = [a.strip() for a in l1[idx+1].split(',')] 
l3 = [re.sub(r'.*"', '',a) for a in l2] 
l4 = [re.sub(r'(Actor|Actress)', r' \1', a) for a in l3] 
l5 = [a for a in l4 if a.endswith('Actor') or a.endswith('Actress')] 
l5 

輸出:

[u'Logan Lerman Actor', 
u'Katey Sagal Actress', 
u'Drea de Matteo Actress', 
u'Tippi Hedren Actress', 
u'Jodie Sweetin Actress', 
u'Elizabeth Tulloch Actress', 
u'Marsha Thomason Actress', 
u'Erin Sanders Actress', 
u'Mickey Sumner Actress']