Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.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

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 使用BeautifulSoup读取表格_Python_Python 2.7_Beautifulsoup_Python 2.x - Fatal编程技术网

Python 使用BeautifulSoup读取表格

Python 使用BeautifulSoup读取表格,python,python-2.7,beautifulsoup,python-2.x,Python,Python 2.7,Beautifulsoup,Python 2.x,我正在用BeautifulSoup读取一个HTML文件。我在HTML中有一个表,需要从中读取数据,但HTML包含多个表。 为了区分表,我需要通过计数标记来查看每行上的列数 我这样计算: for i in soup.find_all('tr'): for x in i.findallnext('td'): 这将返回之后的所有标记,直到文档结束。但是我需要知道行的开头()和该行的and()之间的标记的数量 将findallnext替换为find\u all findallnext如您所说,

我正在用BeautifulSoup读取一个HTML文件。我在HTML中有一个表,需要从中读取数据,但HTML包含多个表。 为了区分表,我需要通过计数
标记来查看每行上的列数

我这样计算:

for i in soup.find_all('tr'):
    for x in i.findallnext('td'):
这将返回
之后的所有
标记,直到文档结束。但是我需要知道行的开头(
)和该行的and(
)之间的
标记的数量


findallnext
替换为
find\u all

findallnext
如您所说,提供文档末尾之前的所有标记


find_all
提供子元素。

findallnext
替换为
find_all

findallnext
如您所说,提供文档末尾之前的所有标记


find_all
提供子元素。

findallnext
替换为
find_all

findallnext
如您所说,提供文档末尾之前的所有标记


find_all
提供子元素。

findallnext
替换为
find_all

findallnext
如您所说,提供文档末尾之前的所有标记


find\u all
为您提供了子元素。

我不清楚您的问题,尽管可以猜测答案。您的示例显示了两个表行,每行正好有两个标题。您的代码将针对这两行(外部for循环)中的每一行运行,并再次针对找到的两个表头中的每一行运行。如果您只需要第一行中的头数,那么为什么不试试:
tables=soup.find_all('table');对于表格中的表格:print(len(table.tr.find_all('th'))
?我不清楚您的问题,尽管可以猜测答案。您的示例显示了两个表行,每行正好有两个标题。您的代码将针对这两行(外部for循环)中的每一行运行,并再次针对找到的两个表头中的每一行运行。如果您只需要第一行中的头数,那么为什么不试试:
tables=soup.find_all('table');对于表格中的表格:print(len(table.tr.find_all('th'))
?我不清楚您的问题,尽管可以猜测答案。您的示例显示了两个表行,每行正好有两个标题。您的代码将针对这两行(外部for循环)中的每一行运行,并再次针对找到的两个表头中的每一行运行。如果您只需要第一行中的头数,那么为什么不试试:
tables=soup.find_all('table');对于表格中的表格:print(len(table.tr.find_all('th'))
?我不清楚您的问题,尽管可以猜测答案。您的示例显示了两个表行,每行正好有两个标题。您的代码将针对这两行(外部for循环)中的每一行运行,并再次针对找到的两个表头中的每一行运行。如果您只需要第一行中的头数,那么为什么不试试:
tables=soup.find_all('table');对于表中的表:打印(len(table.tr.find_all('th'))