我正在尝试解析一些网站,并且遇到了使用xpath查找元素的问题。
如果您要在xpath中指定的文本不是英文,但是,例如,是否存在问题?俄语?
让我说我想找到这样的xpath
//*input[@value="text in Russian"]
我是否需要解码某些内容或它应该可以工作,我需要解决其他问题?
更新
即使使用明确的声明
,它也不起作用'//*input[@value="%s"]' % u'text in Russian'
我会继续寻找其他原因。
Thx to all
答案 0 :(得分:0)
它不应该是一个问题,它应该只在Python 3中解码时才能工作。
工作示例 - 使用Python 3.4.3 和 3.5.1
进行测试from lxml import html
html_content = '<div anything="который">text inside div</div>'
doc = html.fromstring(html_content)
tree = doc.xpath('//div[@anything="который"]')
print(tree[0].text)
输出:
text inside div
答案 1 :(得分:0)
所以,我的问题不是解码,而是指定元素的完整xpath。
我发现对于具有复杂结构的部分xpath工作的页面并不是那么好而且并非总是如此。
就我而言,它就像:
//form[@id="basket-form"]/div/div[@class="content-top-secondary-section"]/div/div/div[@data-id="price-summary"]/div/div/input[@value="text in Russian"]
最后一部分的初始简单声明的内容
//input[@value="text in Russian"]