Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
使用Soup/Xpath/Python从表中删除文本_Python_Xpath_Beautifulsoup - Fatal编程技术网

使用Soup/Xpath/Python从表中删除文本

使用Soup/Xpath/Python从表中删除文本,python,xpath,beautifulsoup,Python,Xpath,Beautifulsoup,我需要帮助从以下位置提取数据: 使用过滤器,我需要存储的表中大约有4页数据(在水稻作物下) 我不太清楚该如何进行。我一直在尽可能地阅读所有文件。对于一个刚刚开始使用python的人来说,我很困惑。感谢您的帮助 这是我基于的一个代码snipet: 示例网站: 我似乎无法理解上面的任何代码。仅了解正在读取URL:( 感谢您的帮助!就像我们有CSS选择器一样,xpath用于在XML中的元素和属性之间导航 因此,在for循环中,您首先搜索一个名为“section”的元素,并给出一个条件,即该元素具有一个

我需要帮助从以下位置提取数据:

使用过滤器,我需要存储的表中大约有4页数据(在水稻作物下)

我不太清楚该如何进行。我一直在尽可能地阅读所有文件。对于一个刚刚开始使用python的人来说,我很困惑。感谢您的帮助

这是我基于的一个代码snipet:

示例网站:

我似乎无法理解上面的任何代码。仅了解正在读取URL:(


感谢您的帮助!

就像我们有CSS选择器一样,xpath用于在XML中的元素和属性之间导航

因此,在for循环中,您首先搜索一个名为“section”的元素,并给出一个条件,即该元素具有一个属性id,其值为排名。但请记住,您还没有完成。此部分还包含标题“Final USCHO.com Division I Men's Polo”表中的、日期和额外元素。只有一个元素,此循环将只运行一次。这就是提取h1(标题)和h3(日期)中的文本(标记中的所有内容)的地方

下一部分提取一个名为table的标记,每个行的类都有条件——它们可以是偶数,也可以是奇数

你可以换一条线

for row in section.xpath('table/tr[@class="even" or @class="odd"]'):

现在,当我们在循环中时,它将返回每个'td'元素,即该行中的每个单元格。这就是为什么最后一行显示row.xpath('td')。当您对其进行迭代时,您将收到多个单元格元素,例如,1Providence4926-13-299715。请检查网页表中的第一行

你自己试试这个。用更容易阅读的选项替换最后一个循环块:

for row in section.xpath('table/tr'):
    print row.xpath('td//text()')
您将看到,它在Python列表中显示所有表数据—每个列表项包含一个单元格。您的代码只是将这些列表项转换为字符串并在字符串之间加空格的另一种更奇特的方式。xpath()方法返回元素类型的对象,这些对象表示每个XML/HTML元素。xpath('something//text()'))将生成该标记中的实际内容

以下是一些有用的参考资料:

易于理解的教程:

问题:


另一个教程:

你的问题是什么?我需要像上面那样编写代码来删除网站上的数据。主要是表格详细信息。:)
for row in section.xpath('table/tr'):
for row in section.xpath('table/tr'):
    print row.xpath('td//text()')