Scrapy - 没有从html标签返回信息

时间:2014-04-22 20:42:28

标签: python html xpath web-scraping scrapy

我正在尝试抓取一个网站,我正在使用刮擦scrapy,但是当我抓取html数据时,我需要获取任何数据的html标记, 我正在使用xpath获取此标记的数据,但这不会返回任何内容

这个网站(“http://www.exito.com/products/0000293501259261/Arroz+Fortificado?cid=&page=”),这是我正在抓取的Html的一部分

<div class="pdpInfoProductPrice">
    <meta itemprop="currency" content="COP">
<h4 itemprop="price" class="price">
   $5.350</h4>
</div>

我需要在标签h4上使用scrapy来获取价格,但是当我正在抓取时只获取此类为空,该类内部没有任何标签 这应该是一件简单的事情,但我无法以任何方式获得价格

我在页面上使用了一些xpath,因为我可以获得价格

sel.xpath('[@id="plpContent"]/div[3]/div[5]/h4').extract()
sel.xpath('//*[@id="atg_store_two_column_main"]/div[2]').extract()
//*[@id="mainWhiteContent"]/div[2]/div[1]/div[1]/div[1]/div[3]/div[1]/div/h4

2 个答案:

答案 0 :(得分:0)

尝试使用此xpath:

sel.xpath("//div[@id='mainWhite']/div[@id='mainWhiteContent']/div[@class='row-fluid'][2]/div[@class='span9 widthCarulla']/div[@class='row-fluid']/div[@class='pdpProduct span12']/div[@class='pdpInfoProduct pull-left']/div[@class='pdpInfoProductPrices']/div[@class='pdpInfoProductPrice']/h4[@class='priceOffer']/text()").extract()

答案 1 :(得分:0)

在第一个请求中,网页会询问您所在的地区并将其存储在Cookie中。

Example dialog http://images.jenserat.de/2014-04-23_0903.png

您可以通过删除Cookie或使用其他浏览器/私密浏览会话来重现此事。

要解决此问题,您必须发送名称为selectedCity的Cookie和类似AR的区域代码。在创建请求时使用类似的内容:

request = Request(
            url="http://www.exito.com/products/0000293501259261/Arroz+Fortificado?cid=&page=",
            cookies={'selectedCity': 'AR'}
          )

对于XPath表达式,我会选择

//div[@class='pdpInfoProductPrice']/h4[@itemprop='price']/text()

还要考虑将匹配的HTML类考虑在内:Selecting a css class with xpath