出于某种原因,即使我能清楚地看到html中的兄弟,item.next_sibling也会返回None。 (item.next_sibling.next_sibling是我想要做的,但它因为tag.next_sibling为None而给我一个错误)。为什么会这样?
我遇到这个问题的html是从电影中的维基百科页面2015中抓取电影及其信息列表。 https://en.wikipedia.org/wiki/2015_in_film
我的代码适用于所有电影,除了The Hateful Eight,我在兄弟姐妹中获得无。一个next_sibling应该返回空格,两个应该返回' The Weinstein Company'
Object
我使用维基百科python库,但我不相信有办法从表中获取信息,因此我使用它来获取html,然后运行上面的内容。
答案 0 :(得分:1)
item.parent.next_sibling.next_sibling
将返回标记,然后您可以从中获取该名称。我无法在The Hateful Eight中再现你的失败。
这适用于Python 3.3:
url = "https://en.wikipedia.org/wiki/2015_in_film"
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html)
titles = soup.find_all('tr')
for tag in titles:
for item in tag.find_all('i'):
if item.a and item.parent.parent.li == None and item.parent.attrs == {}:
print(item.a.text)
print(item.parent.next_sibling.next_sibling.text)
产地:
.....
Point Break
Warner Bros. / Lionsgate
The Hateful Eight
The Weinstein Company
The Revenant
20th Century Fox / Regency Enterprises / RatPac Entertainment