为什么我用lxml获取网站信息时程序returns是一个空列表
Why the program returns an empty list when I use lxml to get information in a website
我想获取网站 http://164.100.47.132/LssNew/Members/Alphabaticallist.aspx 中的列 "Name of Menber",所以我想要的程序 returns 是 "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
它 returns:
[]
然而,当我使用另一个 xpath 时:
.//*[@id='ctl00_ContPlaceHolderMain_Alphabaticallist1_dg1_ctl02_Hyperlink2']
我可以得到第一列的值:
[Adhalrao Patil,Shri Shivaji]
这两个xpath都在firepath中验证过,为什么前者不行?
我猜有些标签,比如 <tbody>
被 lxml
读取的 html
代码过滤掉了,所以不用它试试,比如:
xpath = ".//* [@id='ctl00_ContPlaceHolderMain_Alphabaticallist1_dg1']/tr[position()>1]/td[position()=3]/a/text()"
我想获取网站 http://164.100.47.132/LssNew/Members/Alphabaticallist.aspx 中的列 "Name of Menber",所以我想要的程序 returns 是 "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
它 returns:
[]
然而,当我使用另一个 xpath 时:
.//*[@id='ctl00_ContPlaceHolderMain_Alphabaticallist1_dg1_ctl02_Hyperlink2']
我可以得到第一列的值:
[Adhalrao Patil,Shri Shivaji]
这两个xpath都在firepath中验证过,为什么前者不行?
我猜有些标签,比如 <tbody>
被 lxml
读取的 html
代码过滤掉了,所以不用它试试,比如:
xpath = ".//* [@id='ctl00_ContPlaceHolderMain_Alphabaticallist1_dg1']/tr[position()>1]/td[position()=3]/a/text()"