【发布时间】:2022-01-07 12:54:30
【问题描述】:
我正在开展一个项目,该项目需要我对 IMDB 进行网络抓取并构建一个 pd 数据框。
这是我目前正在处理的网址:https://www.imdb.com/list/ls031674317/
在我尝试将 HTML 页面上的 Director 放入我的 movie_director 列表之前,一切都很顺利。该网站看起来像这样,有些电影有导演,有些则没有:
html 代码如下所示:
我写了一个函数,使用 Beautiful Soup 从 html 中获取每个导演(text_muted 只是我屏幕截图上的部分代码):
def getDirector(text_muted):
try:
return text_muted.find("a").getText()
except:
return 'NA'
text_muted_stuff = movie.find_all("p", {"class": "text-muted text-small"})[1]
director = getDirector(text_muted_stuff) # Need to seperate director and actor
movie_director.append(director)
我设法将所有导演和明星都列在一个列表中,但我想更具体一点,只填写导演列表(如果任何电影没有导演,请附加 NA)。我不确定是否可以使用 Beautiful Soup 或任何硬代码来实现这一点。
谢谢
【问题讨论】:
-
你可以试试
directors=movie.select('a[href*="ttls_li_dr"]') -
@diggusbickus 谢谢,我会调查 select()
-
您能否添加一个列表视图的 url,请参见您的屏幕截图。这将有助于更容易地重现您的问题,因为 html 因部分而异。谢谢
-
@HedgeHog 你是对的,已添加,感谢您的建议
标签: python html web-scraping beautifulsoup