如何提取 html div id 标签下的文本 python
How can I extract text under html div id tag in python
我想知道如何从这个网站的标签中提取文本:https://ru.thefreedictionary.com/%d1%88%d1%87%d0%be
<div id="MainTxt">
Слово в словаре не найдено.
<div id="didYouMean"></div>Быть может, вы искали:
<div style="margin:6px 0 3px 0">
我使用的代码获取 id 标签下的所有内容,但我只想获取文本“Слово в словаре не найдено”。
soup.findAll("div", attrs = {"id": ["MainTxt"]})
感谢您的帮助!
我认为您遇到的问题是 html 页面上没有紧跟在“Слово в словаре не найдено”之后的 </div>
。
这意味着 "MainTxt" 包括下一个未打开的 </div>
之前的所有内容。您可以将它们想象成圆括号或大括号。
所以这类似于 。 . .
Maintxt{
Слово в словаре не найдено.
didYouMean{}Быть может, вы искали:
您可以尝试获取所有 Maintxt,就像在您的代码中一样,然后删除所有额外的 divs,但不幸的是,这可能不像一行代码那么简单,因为 html 你正在使用不包装 Слово в словаре не найдено。在它自己的 div
首先,不需要将 findAll()
与 id
属性组合,因为只能有 one 元素与 id
在那个 html 所以 findAll()
总是 return 一个元素的列表。这是解决问题的方法。
match = soup.find('div', {'id': 'MainTxt'})
text = match.text.rstrip().lstrip().split('\n')
rstrip()
和 lstrip()
用于删除字符串前后的尾随空格。现在 text
是一个元素列表:['Слово в словаре не найдено.\r', ' Быть может, вы искали:\r', '', ...]
。获取目标字符串很容易。
target_string = text[0].replace('\r', '')
我想知道如何从这个网站的标签中提取文本:https://ru.thefreedictionary.com/%d1%88%d1%87%d0%be
<div id="MainTxt">
Слово в словаре не найдено.
<div id="didYouMean"></div>Быть может, вы искали:
<div style="margin:6px 0 3px 0">
我使用的代码获取 id 标签下的所有内容,但我只想获取文本“Слово в словаре не найдено”。
soup.findAll("div", attrs = {"id": ["MainTxt"]})
感谢您的帮助!
我认为您遇到的问题是 html 页面上没有紧跟在“Слово в словаре не найдено”之后的 </div>
。
这意味着 "MainTxt" 包括下一个未打开的 </div>
之前的所有内容。您可以将它们想象成圆括号或大括号。
所以这类似于 。 . .
Maintxt{
Слово в словаре не найдено.
didYouMean{}Быть может, вы искали:
您可以尝试获取所有 Maintxt,就像在您的代码中一样,然后删除所有额外的 divs,但不幸的是,这可能不像一行代码那么简单,因为 html 你正在使用不包装 Слово в словаре не найдено。在它自己的 div
首先,不需要将 findAll()
与 id
属性组合,因为只能有 one 元素与 id
在那个 html 所以 findAll()
总是 return 一个元素的列表。这是解决问题的方法。
match = soup.find('div', {'id': 'MainTxt'})
text = match.text.rstrip().lstrip().split('\n')
rstrip()
和 lstrip()
用于删除字符串前后的尾随空格。现在 text
是一个元素列表:['Слово в словаре не найдено.\r', ' Быть может, вы искали:\r', '', ...]
。获取目标字符串很容易。
target_string = text[0].replace('\r', '')