Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.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 lxml.html XPath“;“属性不相等”;操作员未按预期工作_Python_Html_Xpath_Screen Scraping_Lxml - Fatal编程技术网

Python lxml.html XPath“;“属性不相等”;操作员未按预期工作

Python lxml.html XPath“;“属性不相等”;操作员未按预期工作,python,html,xpath,screen-scraping,lxml,Python,Html,Xpath,Screen Scraping,Lxml,我正在尝试运行以下脚本: #!python from urllib import urlopen #urllib.request for python3 from lxml import html url = 'http://mpk.lodz.pl/rozklady/1_11_D2D3/00d2/00d2t001.htm?r=KOZINY'+\ '%20-%20Srebrzy%F1ska,%20Cmentarna,%20Legion%F3w,%20pl.%20Wolno%

我正在尝试运行以下脚本:

#!python

from urllib import urlopen #urllib.request for python3
from lxml import html

url =   'http://mpk.lodz.pl/rozklady/1_11_D2D3/00d2/00d2t001.htm?r=KOZINY'+\
        '%20-%20Srebrzy%F1ska,%20Cmentarna,%20Legion%F3w,%20pl.%20Wolno%B6ci'+\
        ',%20Pomorska,%20Kili%F1skiego,%20Przybyszewskiego%20-%20LODOWA'

raw_html = urlopen(url).read()
tree = html.fromstring(raw_html) #need to .decode('windows-1250') in python3
ret = tree.xpath('//td [@class!="naglczas"]')
print ret
assert(len(ret)==1)

我希望它选择一个没有将其类设置为“naglczas”的td。相反,它返回一个空列表。为什么呢?我想这是有一些愚蠢的原因,但我试着用谷歌搜索,却找不到任何解释。

您的xpath表达式会找到

具有非“naglczas”类的td元素

您似乎想要(因为只有3个td-s有一个类,而您不想要的是同一个类)

没有“naglczas”类的td元素


这些听起来可能相似,但它们是不同的。 差不多

tree.xpath('//td[not(@class="naglczas")]')
你应该得到你想要的



另外,您不需要使用urllib来打开url,lxml可以使用
lxml.html.parse()

查看页面源代码,我看不到这样的元素。
td
元素要么将
class
设置为
“naglczas”
,要么完全没有这样的属性。//td[not(@class=“naglczas”)]是否满足您的需要?是的!非常感谢。还有,Lev Levitsky,这是否意味着我不能申请!=到一个没有这样属性的元素?伙计们,发布一个答案,这样我可以加上你。你没有那么多的工作来回答这个问题,因为它都在评论中,但你作为第一个:D