我对WebScraping/Python和beauthoulsoup还不熟悉,我的代码很难正常工作。在
我想通过url:http://m.imdb.com/feature/bornondate“获取:
为那一页上的十位名人。我不知道我做错了什么。在
这是我的代码:
import urllib2
from bs4 import BeautifulSoup
url = 'http://m.imdb.com/feature/bornondate'
test_url = urllib2.urlopen(url)
readHtml = test_url.read()
test_url.close()
soup = BeautifulSoup(readHtml)
# Using it track the number of Actor
count = 0
# Fetching the value present within tag results
person = soup.findChildren('section', 'posters list')
# Changing the person into an iterator
iterperson = iter(person[0].findChildren('a'))
# Finding 'a' in iterperson. Every 'a' tag contains information of a person
for a in iterperson:
imgSource = a.find('img')['src'].split('._V1.')[0] + '._V1_SX214_AL_.jpg'
person = a.findChildren('div', 'label')
title = person[0].find('span', 'title').contents[0]
##profession = person[0].find('div', 'detail').contents[0].split(,)
##bestWork = person[0].find('div', 'detail').contents[1].split(,)
print '*******************************IMDB People Born Today***********************************'
# Printing the S.No of the person
print 'S.No. --> ',
count += 1
print count
# Printing the title/name of the person
print 'Title --> ' + title
# Printing the Image Source of the person
print 'Image Source --> ', imgSource
# Printing the Profession of the person
##print 'Profession --> ', profession
# Printing the Best work of the person
##print 'Best Work --> ', bestWork
目前没有打印出来。 还有,如果这是模糊的,你能解释一下如何做名人的名字,例如?在
下面是第一位名人的html代码,如果有帮助的话:
^{pr2}$
首先,IMDb "Conditions of Use"明确禁止屏幕抓取:
尝试探索IMDb JSON API而不是web抓取方法。在
您当前的问题是-在特定日期出生的人的列表是通过对
IMDb
API的单独调用加载的,并涉及到javascript逻辑。在现在最简单的选择是切换到^{} 浏览器自动化工具。使用headless
PhantomJS
浏览器的工作示例:印刷品:
^{pr2}$我在做同样的任务。URLlib库加载web URL的静态内容。使用selenium获得完整的html,其中也包括动态内容。如果使用urllib2库,生成的html将
希望有帮助。在
相关问题 更多 >
编程相关推荐