从此网页:page我正在尝试构建一个爬虫,该爬虫将从“Περιοχή:”字段中提取“Μακεδονία>Ν。Ημαθίας>Δ。Δοβρά”。
->查看该项目的屏幕截图:
请参阅下面的链接2
为此,我打算使用XPath专注于“Περιοχή:”,然后使用以下同级关键字访问并提取文本“Μακεδονία>Ν。Ημαθίας>Δ。Δοβρά”,因为包含它可能位于其他网页中的其他位置(但总是在tr后面加上文本“Περιοχή:”),甚至丢失。
请参阅下面的链接3

在scrapy shell中,我正在测试以下内容:

x = response.xpath(u"//th[@text()=u'Περιοχή:']/text()").extract()

期望得到x = [u“Περιοχή:”]
但是相反,我得到一个错误:
ValueError: XPath error: Invalid predicate in //th[@text()=u'\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae:']/text()

我究竟做错了什么?
提前致谢。

最佳答案

您要指定两次unicode编码,因此不应在xpath中指定它,因为它已经是unicode字符串了。



# this:
u"//th[@text()=u'Περιοχή:']/text()"
# should be this:
u"//th[text()='Περιοχή:']/text()"


注意,在文本之前没有u,并且在text()之前也不需要@,因为它是xpath函数而不是节点属性。

10-04 21:46
查看更多