Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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
Python 2.7 在python中使用BeautifulSoup.findAll(';table';)找不到包含soup的表_Python 2.7_Beautifulsoup_Tags_Find_Findall - Fatal编程技术网

Python 2.7 在python中使用BeautifulSoup.findAll(';table';)找不到包含soup的表

Python 2.7 在python中使用BeautifulSoup.findAll(';table';)找不到包含soup的表,python-2.7,beautifulsoup,tags,find,findall,Python 2.7,Beautifulsoup,Tags,Find,Findall,我正在使用soup.findAll('table')尝试在html文件中查找该表,但它不会出现。 该表确实存在于文件中,使用regex,我可以通过以下方式找到它: import sys import urllib2 from bs4 import BeautifulSoup import re webpage = open(r'd:\samplefile.html', 'r').read() soup = BeautifulSoup(webpage) print re.findall("TABL

我正在使用soup.findAll('table')尝试在html文件中查找该表,但它不会出现。 该表确实存在于文件中,使用regex,我可以通过以下方式找到它:

import sys
import urllib2
from bs4 import BeautifulSoup
import re
webpage = open(r'd:\samplefile.html', 'r').read()
soup = BeautifulSoup(webpage)
print re.findall("TABLE",webpage)   #works, prints ['TABLE','TABLE']
print soup.findAll("TABLE")   # prints an empty list []
我知道我正确地生成了汤,因为我:

print [tag.name for tag in soup.findAll(align=None)]
它将正确打印找到的标签。我已经试过用不同的方式写“表”,比如“表”、“表”等等。 另外,如果我打开文件并用文本编辑器编辑它,它上面有“TABLE”

为什么beautifulsoup找不到表??

上下文
  • Python2.x
  • 美化组HTML解析器
问题
  • bsoup
    findall
    不会返回所有预期的标记,或者根本不返回任何标记,即使用户知道标记中存在该标记
解决方案
  • 初始化
    BeautifulSoup
    构造函数时,请尝试指定确切的解析器
##以前 汤=美汤(网页) ##之后 soup=BeautifulSoup(网页“html5lib”) 根本原因
  • 目标标记可能包括格式错误的HTML,不同解析器的成功程度也不同
另见
上下文
  • Python2.x
  • 美化组HTML解析器
问题
  • bsoup
    findall
    不会返回所有预期的标记,或者根本不返回任何标记,即使用户知道标记中存在该标记
解决方案
  • 初始化
    BeautifulSoup
    构造函数时,请尝试指定确切的解析器
##以前 汤=美汤(网页) ##之后 soup=BeautifulSoup(网页“html5lib”) 根本原因
  • 目标标记可能包括格式错误的HTML,不同解析器的成功程度也不同
另见

您可以发布此html文件的示例吗?我也有同样的问题。试图从ESPN.com上搜刮url=''boxurl=urllib2.urlopen(url).read()soup=BeautifulSoup(boxurl)soupTables=soup.findAll('table')reTables=re.findAll('table',boxurl)print len(soupTables),len(reTables)`soup.findAll只返回1个表,而re.findAll查找46个表tables@user2333196在将
http://
添加到url后(这样我就可以下载它了),
len(soup.findAll('table'))
为我返回了23。@mr2ert是的,你可以在这里找到它:我在我的计算机上的本地文件中复制了你的html,并在ipython中运行你的代码,效果很好,我得到了一张表。你有没有试过在ipython中用最少的代码运行它?你能发布这个html文件的示例吗?我也有同样的问题。试图从ESPN.com上搜刮url=''boxurl=urllib2.urlopen(url).read()soup=BeautifulSoup(boxurl)soupTables=soup.findAll('table')reTables=re.findAll('table',boxurl)print len(soupTables),len(reTables)`soup.findAll只返回1个表,而re.findAll查找46个表tables@user2333196在将
http://
添加到url后(这样我就可以下载它了),
len(soup.findAll('table'))
为我返回了23。@mr2ert是的,你可以在这里找到它:我在我的计算机上的本地文件中复制了你的html,并在ipython中运行你的代码,效果很好,我得到了一张表。您是否尝试过在ipython中以最少的代码运行它? ## BEFORE soup = BeautifulSoup(webpage) ## AFTER soup = BeautifulSoup(webpage, "html5lib")