python - 当我使用 lxml 获取网站信息时,为什么程序返回空列表

标签 python xpath web-crawler lxml

我想获取网站http://164.100.47.132/LssNew/Members/Alphabaticallist.aspx中的“成员(member)姓名”栏目,所以我希望程序返回的是“Adhalrao Patil,Shri Shivaji..”的列表,但我得到一个空列表。 Xpath是在Firepath中验证的,所以我只是不知道出了什么问题。 这是我的代码:

import urllib
from lxml import etree

result =   urllib.urlopen("http://164.100.47.132/LssNew/Members/Alphabaticallist.aspx")
html = result.read()

parser = etree.HTMLParser()
tree   = etree.parse(StringIO.StringIO(html), parser)
print type(tree)
xpath = ".//* [@id='ctl00_ContPlaceHolderMain_Alphabaticallist1_dg1']/tbody/tr[position()>1]/td[position()=3]/a/text()"
filtered_html = tree.xpath(xpath)

print filtered_html

它返回:

[]

但是,当我使用另一个xpath时:

.//*[@id='ctl00_ContPlaceHolderMain_Alphabaticallist1_dg1_ctl02_Hyperlink2']

我可以获得第一列的值:

[Adhalrao Patil,Shri Shivaji]        

这两个xpath都是在firepath中验证的,为什么前者不能工作?

最佳答案

我猜想有些标签,比如 <tbody>html 中过滤掉代码由 lxml 读取,所以尝试不使用它,例如:

xpath = ".//* [@id='ctl00_ContPlaceHolderMain_Alphabaticallist1_dg1']/tr[position()>1]/td[position()=3]/a/text()"

关于python - 当我使用 lxml 获取网站信息时,为什么程序返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208242/

相关文章:

html - 当我们在Google Chrome开发人员工具上使用“删除元素”时,它是否真的从实时全局服务器中删除了该元素?

python - 一个独立的 python 文件中的网络爬虫

python - AWS CloudFormation - 如何上传一些 python/flask 代码

python - 如何使用python打开类似vim,类似联机帮助页的隔离显示?

python - lxml xpath 找不到 anchor 文本

web - 如何使用 Scrapy 抓取网站所有页面上的链接

java - 使用HtmlUnit作为爬虫

python - ML管道OneHotEncoder不适合

python - 使用 python NLTK : How can I improve the accuracy of the POS tagger?

PHP 访问 XML 同级标签的属性