我正在尝试从h2,h3和p标签上的文本按它们在html页面上出现的顺序获取文本。 例: 所有突出显示的文本应按此顺序提取。
使用以下xpath时:
response.xpath('//*[name()=("h2", "h3","p")]/text()').extract()
出现以下错误:
ValueError: XPath error: Invalid expression in //*[name()=("h2", "h3","p")]/text()
我在哪里错了?还有另一种方法可以实现我的目标吗?
答案 0 :(得分:2)
您可以通过使用 Undefined index: CUSTOMER_ORDER
$json_decoded = json_decode($json_data,true);
or
$json_decoded = json_decode(json_encode($json_data),true);
$customer_nickname = $json_decoded['CUSTOMER_ORDER'][0]['customer_nickname'];
组合一些条件来实现所需的目标:
or
您还可以通过组合一些路径并链接多个response.xpath('//*[name()="h2" or name()="h3" or name()="p"]/text()')
调用来选择同一件事:
.xpath()
我不确定是否存在性能差异,但是我只是选择一个您更容易阅读的字体。
如果性能是一个主要问题,我建议对两种方法进行性能分析。