Python BeautifulSoup-如何在没有开始标记和之前提取文本<;br>;标签?
我不熟悉python和beautifulsoup,花了好几个小时试图弄明白这一点。Python BeautifulSoup-如何在没有开始标记和之前提取文本<;br>;标签?,python,html,parsing,beautifulsoup,html-parsing,Python,Html,Parsing,Beautifulsoup,Html Parsing,我不熟悉python和beautifulsoup,花了好几个小时试图弄明白这一点。 我想在一个没有类的中提取三个特定的文本摘录。 我想要的第一个文本提取在标记中,该标记位于标记中。这是我设法提取出来的。 第二个文本摘录紧跟在结束h4标记之后,后面紧跟着一个标记。 在第二次文本提取之后,第三次文本提取紧跟在标记之后,并且紧跟在标记之后 下面是我使用的html摘录: <div> <h4 class="actorboxLink"> <a href="/a-
我想在一个没有类的
中提取三个特定的文本摘录。我想要的第一个文本提取在
标记中,该标记位于
标记中。这是我设法提取出来的。第二个文本摘录紧跟在结束h4标记
之后,后面紧跟着一个
标记。在第二次文本提取之后,第三次文本提取紧跟在
标记之后,并且紧跟在
标记之后
下面是我使用的html摘录:
<div>
<h4 class="actorboxLink">
<a href="/a-decheterie-de-bagnols-2689">Decheterie de Bagnols</a>
</h4>
Route des 4 Vents<br>
63810 Bagnols<br>
</div>
我需要类似“soup.findAll(所有文本都在
之后)”的内容
我玩了使用。下一个兄弟,但我无法让它工作
有什么想法吗?谢谢
更新:我试过这个:
for a_tag in classActorboxLink:
print a_tag.find_all_next(string=True, limit=5)
这给了我:[u'\n',u'\r\n\t\t\t\t\t\t出口\xa0de\xa0Bagnols\t\t\t\t',u'\n',u'\r\n\t\t\t\t\tRoute\xa0des\xa04\xa0Vents',u'\r\n\t\t\t\t\t63810 Bagnols'] 这是一个开始,但我需要重新删除所有空白和不必要的字符。我尝试使用
.strip()
、.strings
和.stripped_strings
但不起作用。示例:
for a_tag in classActorboxLink.strings
for a_tag in classActorboxLink.stripped_strings
print a_tag.find_all_next(string=True, limit=5).strip()
对于这三种情况,我得到:
AttributeError: 'ResultSet' object has no attribute 'strings/stripped_strings/strip'
找到
h4
元件并使用:
如果您不需要在不同变量中查找的3个元素中的每一个,您可以使用
上的get_text()
函数将它们全部放在一个字符串中。如果有其他div
标记,但它们都有类,则可以使用class=false
找到所有
。如果您无法隔离您感兴趣的
,那么此解决方案将不适用于您
import urllib
from bs4 import BeautifulSoup
data = urllib.urlopen(url).read()
soup = BeautifulSoup(data, "html.parser")
for name in soup.find_all("div", class=false)
print name.get_text().strip()
顺便说一句,是python 3&bs4给了我这个错误:AttributeError:'ResultSet'对象没有属性'find_next_Sides'(查找下一个兄弟姐妹)'这是一个很好的建议,但我无法分离出我感兴趣的…太多了
h4s = soup.find_all("h4", class_="actorboxLink")
for h4 in h4s:
for text in h4.find_next_siblings(text=True):
print(text.strip())
import urllib
from bs4 import BeautifulSoup
data = urllib.urlopen(url).read()
soup = BeautifulSoup(data, "html.parser")
for name in soup.find_all("div", class=false)
print name.get_text().strip()