我正在玩一些使用原始html和JQuery的想法.我做的一件事是创建一个包含一组行的表元素.
<table id="MyTable" >
<tr>
<td>Title</td>
</tr>
<tr>
<td>1</td>
</tr>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
但是,当我在FireFox + Firebug,IE8开发人员工具栏或Google Chrome JavaScript调试器中查看代码时......所有这些代码都显示了围绕所有tr节点的tbody元素.
我并不反对这种情况......但这是标准行为吗?
这是我试图从中获取数据的示例网页. http://www.makospearguns.com/product-p/mcffgb.htm
xpath取自chrome开发工具,firefox中的firepath也能找到它,但是使用lxml它只返回'text'的空列表.
from lxml import html
import requests
site_url = 'http://www.makospearguns.com/product-p/mcffgb.htm'
xpath = '//*[@id="v65-product-parent"]/tbody/tr[2]/td[2]/table[1]/tbody/tr/td/table/tbody/tr[2]/td[2]/table/tbody/tr[1]/td[1]/div/table/tbody/tr/td/font/div/b/span/text()'
page = requests.get(site_url)
tree = html.fromstring(page.text)
text = tree.xpath(xpath)
Run Code Online (Sandbox Code Playgroud)
用.打印出树文本
print(tree.text_content().encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
显示数据存在,但似乎xpath无法找到它.有什么我想念的吗?我尝试过的大多数其他网站使用lxml和从chrome dev工具中获取的xpath都可以正常工作,但是我找到了一些空列表.