2017-01-19 2 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() 

Я пытаюсь найти по крайней мере один элемент перед держать логику в цикле.

Содержание 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> 

Thanks, Phani.

+2

Пожалуйста, пост код, который вы пробовали. –

+0

Проверьте ответ. Это то, что вы искали? – MYGz

+0

Да, я хочу только 10 лучших актеров. Я сталкиваюсь с некоторыми проблемами по импорту dryscrape, но похоже, что код, который вы опубликовали, должен работать. Также я понял, что динамическое содержимое html-извлечения невозможно с помощью beautifulsoup. Спасибо за ваше время в ответе. – ppeddi

ответ

0

Это даст актерам только на первой странице. Если вам нужны все актеры/актрисы, вам нужно будет использовать selenium или другую библиотеку.

Проверьте, соответствует ли дата 0d или d если есть одна цифра.

Вы можете попробовать что-то подобное с 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'] 
Смежные вопросы