我正在抓取此网址https://www.amazon.co.uk/dp/073532963X,并且它有//*[@id="ddmDeliveryMessage"]
个XPath元素。 (请选择澳大利亚作为送货地址)
该元素具有这样的HTML
<div id="ddmDeliveryMessage" class="a-section a-spacing-mini">
<span class="a-text-bold">Estimated delivery</span> 18 Oct.4 Nov. when you choose <span class="a-text-bold">Standard Delivery</span> at checkout. <a href="">Details</a>
</div>
我尝试了//*[@id="ddmDeliveryMessage"]/text()
,但它给出了空结果
我已尝试//*[@id="ddmDeliveryMessage"]//text()
它也会提供空结果
还尝试Selector(response).css('div[id=ddmDeliveryMessage]::text').extract()[0]
,但提供空响应。
有人可以告诉我一个选择器来获取ddmDeliveryMessage
DIV中的所有文字吗?
注:
//*[@id="ddmDeliveryMessage"]
为我提供了完整的HTML。
答案 0 :(得分:0)
当我通过Scrapy Shell提出 User-Agent标题的请求时,..//text()
选项实际上对我有用:
$ scrapy shell https://www.amazon.co.uk/dp/073532963X -s USER_AGENT='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
In [1]: ' '.join(item.strip() for item in response.xpath('//*[@id="ddmDeliveryMessage"]//text()').extract()).strip()
Out[1]: u'Estimated delivery 18 Oct.\xa0-\xa04 Nov. when you choose Standard Delivery at checkout. Details'
答案 1 :(得分:0)
我最终获得了HTML,然后使用RegEx剥离HTML标签。
other processes
答案 2 :(得分:0)
在这种情况下,正确的XPATH是//*[@id="ddmDeliveryMessage"]/span/text()