Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html PythonWebScrapingwithBeautySoup3:如何从div获取文本_Html_Python 2.7_Web Scraping_Beautifulsoup - Fatal编程技术网

Html PythonWebScrapingwithBeautySoup3:如何从div获取文本

Html PythonWebScrapingwithBeautySoup3:如何从div获取文本,html,python-2.7,web-scraping,beautifulsoup,Html,Python 2.7,Web Scraping,Beautifulsoup,下面是我遇到麻烦的HTML的外观 <div id="id" class="class"> text </div> 如何获取div的文本部分 我分别尝试了其中一些方法 text = div.get_text() text = div.string text = div.text 当我跑的时候 type(div) 它的类型是BeautifulSoup.Tag,但当我调用上述任何一个方法时,它会说“NoneType”没有这些属性中的任何一个 我可以从和和其他属性中

下面是我遇到麻烦的HTML的外观

<div id="id" class="class">

 text

</div>
如何获取div的文本部分

我分别尝试了其中一些方法

text = div.get_text()
text = div.string
text = div.text
当我跑的时候

type(div) 
它的类型是BeautifulSoup.Tag,但当我调用上述任何一个方法时,它会说“NoneType”没有这些属性中的任何一个

我可以从和和其他属性中提取它,但不能从div中提取


我已经研究了关于BeautifulSoup的其他几个问题,但没有一个解决这个问题。

我不太确定这里的问题是什么,但这里有一个工作示例:

from bs4 import BeautifulSoup
html = """
<div id="id" class="class">

 text

</div>
"""
soup = BeautifulSoup(html, 'html.parser')
div = soup.find('div', attrs={'class': 'class'})
print (type(div.text))
print (div.text)
从bs4导入美化组
html=”“”
文本
"""
soup=BeautifulSoup(html,'html.parser')
div=soup.find('div',attrs={'class':'class'})
打印(类型(div.text))
打印(div.text)
产出:

<type 'unicode'>

 text

文本

我不太确定这里的问题是什么,但这里有一个工作示例:

from bs4 import BeautifulSoup
html = """
<div id="id" class="class">

 text

</div>
"""
soup = BeautifulSoup(html, 'html.parser')
div = soup.find('div', attrs={'class': 'class'})
print (type(div.text))
print (div.text)
从bs4导入美化组
html=”“”
文本
"""
soup=BeautifulSoup(html,'html.parser')
div=soup.find('div',attrs={'class':'class'})
打印(类型(div.text))
打印(div.text)
产出:

<type 'unicode'>

 text

文本

我看你的代码没有任何问题。如果该方法返回None,是因为BeautifulSoup的
find
函数没有找到标记和/或属性。以下是一些建议:

  • 尝试使用函数
    find_all()
    ,而只使用
    find()
    (它将返回一个列表)
  • 确保该类位于标记div中
  • 尝试在BeautifulSoup中使用不同的库,如“lxml”、“html5lib”等
  • 如果可能,请使用Python 3尝试相同的代码
下面是我测试过的代码,它工作得非常好:

from bs4 import BeautifulSoup as bs

html = '<div id="id" class="class">exemple_text</div>'

div = bs(html, 'html5lib')

answer = div.find('div', attrs={'class': 'class'})

print(answer.text)
从bs4导入美化组作为bs
html='example_text'
div=bs(html,'html5lib')
answer=div.find('div',attrs={'class':'class'})
打印(答案.文本)

我看你的代码没有任何问题。如果该方法返回None,是因为BeautifulSoup的
find
函数没有找到标记和/或属性。以下是一些建议:

  • 尝试使用函数
    find_all()
    ,而只使用
    find()
    (它将返回一个列表)
  • 确保该类位于标记div中
  • 尝试在BeautifulSoup中使用不同的库,如“lxml”、“html5lib”等
  • 如果可能,请使用Python 3尝试相同的代码
下面是我测试过的代码,它工作得非常好:

from bs4 import BeautifulSoup as bs

html = '<div id="id" class="class">exemple_text</div>'

div = bs(html, 'html5lib')

answer = div.find('div', attrs={'class': 'class'})

print(answer.text)
从bs4导入美化组作为bs
html='example_text'
div=bs(html,'html5lib')
answer=div.find('div',attrs={'class':'class'})
打印(答案.文本)

是否尝试从元素中提取文本?试试这个:

html='''
<div id="id" class="class">
 text
</div>
'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,"lxml")
item = soup.find(id="id").text.strip()
item1 = soup.find("div").text.strip()
item2 = soup.find(class_="class").text.strip()
print(item,item1,item2)

您正在尝试从元素中提取文本吗?试试这个:

html='''
<div id="id" class="class">
 text
</div>
'''
from bs4 import BeautifulSoup
soup = BeautifulSoup(html,"lxml")
item = soup.find(id="id").text.strip()
item1 = soup.find("div").text.strip()
item2 = soup.find(class_="class").text.strip()
print(item,item1,item2)

.text不起作用,但我可以使用.\uuuu str\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!我总是使用
\uuu str\uuuu
和正则表达式来解决BeautifulSoup效率低下的问题。唯一的问题是正则表达式操作起来不是那么简单..文本不起作用,但我可以使用.\uuuu str\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!我总是使用
\uuu str\uuuu
和正则表达式来解决BeautifulSoup效率低下的问题。唯一的问题是正则表达式并不是很容易操作。是的。文本仍然不起作用,但我可以使用div._ustr_uuu的等价物并编辑出您更新到BS4的div标记扫描?BS3上的所有开发都已停止,该版本的最后一个版本是在2年前发布的。我将安装它并试一试。谢谢。文本仍然不起作用,但我可以使用div._ustr_uuu的等价物并编辑出您更新到BS4的div标记?BS3上的所有开发都已停止,该版本的最后一个版本是在2年前发布的。我将安装它并试一试。谢谢