Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用xpath获取图像_Xpath_Scrapy - Fatal编程技术网

无法使用xpath获取图像

无法使用xpath获取图像,xpath,scrapy,Xpath,Scrapy,由于某些原因,我无法正确使用XPath并从Nordstrom.com获取产品图像,我使用的是Scrapy,以下是我的代码,strPicture总是显示为空: from scrapy.spider import Spider from scrapy.selector import Selector from bed2.items import bed2Item import urlparse class MySpider(Spider): name = "bed2" allowe

由于某些原因,我无法正确使用XPath并从Nordstrom.com获取产品图像,我使用的是Scrapy,以下是我的代码,strPicture总是显示为空:

from scrapy.spider import Spider
from scrapy.selector import Selector
from bed2.items import bed2Item
import urlparse

class MySpider(Spider):
    name = "bed2"
    allowed_domains = ["nordstrom.com,"nordstromimage.com"]
    start_urls = ["http://shop.nordstrom.com/c/bedding-home?origin=leftnav#category=b60175057&type=category&marketingslots=2&page=1&defaultsize3=&size=&width=&color=&price=&brand=&instoreavailability=false&lastfilter=&sizeFinderId=0&resultsmode=&segmentId=0&sort=newest&sortreverse=0"]

def parse(self, response):
    hxs = Selector(response)
    titles = hxs.xpath("//div[@class='fashion-item']")
    items = []
    for titles in titles[:1]:
        item = bed2Item()
        item ["strTitle"] = titles.xpath("div[2]/a[1]/text()").extract()
        item ["strLink"] = urlparse.urljoin(response.url, titles.xpath("div[2]/a[1]/@href").extract()[0])
        item ["strPrice"] = "0"
        item ["strPicture"] = titles.xpath("a/div[1]/img/@src").extract()
        items.append(item)
    return items
我正在抓取的URL是:

试图得到第一个产品


感谢查看源代码,在检索图片URL时,我找不到您要查找的锚定标记。省略它。此外,在加载页面后,似乎发生了一些JavaScript魔法,图像URL存储在
@data original

item ["strPicture"] = titles.xpath("div[1]/div/img/@data-original").extract()

不管怎样,既然这个div中没有任何进一步的图片,为什么不直接查询
//img/@data-original
?这同样适用于可以利用其class属性进行查询的标题,如
//a[@class='title']/text()
或更健壮的
数据(.//a[@class='title'])

谢谢Jens,javascript更改源代码的好方法!