我知道这个问题已被提出,但没有一个答案在我的案例中有效,我花了一整天时间试图从它们构建。我会在下面的代码中省略多次尝试&展示什么抓住了我需要的元素 从非描述琐事divs我想只是文本 如果您想检查元素,我正在抓取的网站链接如下 从第一个“汽水甚至”div开始,它抓住了两个“汽水甚至”和“汽水奇”div,直到它到达下一个h4元素的琐事模糊结束并停在我想要的地方(下面的代码)。
仅供参考:我可以使用BeautifulSoup从这些div中提取文本,但不能没有挖掘出我不想要的许多其他div。 div的数量从一个页面到另一个页面发生变化,我想制作适合其中任何一个的东西。
site = http://www.imdb.com/name/nm0424060/bio?ref_=nm_dyk_trv_sm
content = urllib.request.urlopen(site).read()
soup = BeautifulSoup(content, "html.parser")
for tag in soup.find("div",class_="soda even").next_siblings:
if tag.name == "h4":
break
else:
print (tag)
(在Python中)
答案 0 :(得分:0)
site = http://www.imdb.com/name/nm0424060/bio?ref_=nm_dyk_trv_sm
content = urllib.request.urlopen(site).read()
soup = BeautifulSoup(content, "html.parser")
vtg = u""
listo = []
for tag in soup.find("div",class_="soda even").next_siblings:
if tag.name == "h4":
break
else:
vtg += str(tag)
soup2 = BeautifulSoup(vtg, "html.parser")
q = []
#specify the elements with two more .findAll passes to weed out any href elements still in the soup
for i in soup2.findAll("div",class_="soda even"):
q.append(i.text)
for k in soup2.findAll("div",class_="soda odd"):
q.append(k.text)
for h in q:
print (h)
我将.next_siblings for循环的输出存储为字符串然后我通过BeatifulSoup将其存储,(第二次通过BeautifulSoup传输数据)。
我能够循环遍历并应用.text函数
如果有更多的数据显示方式或者只是不同的方式,我很乐意看到你的帖子。
感谢您对我的问题竖起大拇指,好像这个问题很容易或之前发布过。