【问题标题】:xpath works for just the first imagexpath 仅适用于第一个图像
【发布时间】:2014-03-01 07:50:48
【问题描述】:

我正在抓取这个网站 http://www.propertyfinder.ae/en/buy/villa-for-sale-dubai-jumeirah-park-1849328.html?img/0

我想获取这个标签div[@id='propertyPhoto']中的所有图片src

我试过这个 xpath

.//div[@id='propertyPhoto']//img/@src

我做了一个循环来提取 src,但我只得到了第一个图像 src

请帮忙

【问题讨论】:

    标签: python python-2.7 xpath scrapy


    【解决方案1】:

    div#propertyPhoto 中只有主图像。其他人在里面li#propertyPhotoMini0li#propertyPhotoMini1,...

    所以 XPath 应该稍微修改以匹配两者。 id属性都以propertyPhoto开头;您可以使用以下 XPath:

    .//*[starts-with(@id, 'propertyPhoto')]//img/@src
    

    例子:

    import urllib
    from scrapy.selector import Selector
    url = 'http://www.propertyfinder.ae/en/buy/villa-for-sale-dubai-jumeirah-park-1849328.html?img/0'
    h = urllib.urlopen(url).read()
    root = Selector(text=h, type='html')
    for url in root.xpath(".//*[starts-with(@id, 'propertyPhoto')]//img/@src").extract():
        print(url)
    

    输出:

    http://c1369023.r23.cf3.rackcdn.com/1849328-1-wide.jpg
    http://c1369023.r23.cf3.rackcdn.com/1849328-1-mini.jpg
    http://c1369023.r23.cf3.rackcdn.com/1849328-2-mini.jpg
    http://c1369023.r23.cf3.rackcdn.com/1849328-3-mini.jpg
    http://c1369023.r23.cf3.rackcdn.com/1849328-4-mini.jpg
    http://c1369023.r23.cf3.rackcdn.com/1849328-5-mini.jpg
    http://c1369023.r23.cf3.rackcdn.com/1849328-6-mini.jpg
    http://c1369023.r23.cf3.rackcdn.com/1849328-7-mini.jpg
    http://c1369023.r23.cf3.rackcdn.com/1849328-8-mini.jpg
    http://c1369023.r23.cf3.rackcdn.com/1849328-9-mini.jpg
    http://c1369023.r23.cf3.rackcdn.com/1849328-10-mini.jpg
    

    【讨论】:

    • 你怎么能得到这个结果,我刚刚测试了 shell 上的 xpath 就像这样s = sel.xpath(".//div[@id='propertyPhoto']//img/@src")然后我检查了s,我得到了第一张图片
    • @MarcoDinatsoli,我更新了答案。请重新加载页面。
    • 更新后,我从 shell 获得了正确的图像。但是,当我尝试像这样objects = sel.xpath(THE XPATH) for oneObject in objects: results.extend(oneObject.extract()) 从我的蜘蛛那里获取它时,我只得到了 src 的字母。
    • @MarcoDinatsoli,试试results = sel.xpath(THE_XPATH).extract()
    • 是的,我已经尝试过了。实际上,这就是给我这些字母的原因。我试过不提取但我也出错了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 2015-06-28
    相关资源
    最近更新 更多