HTML与response.url - 如何使用xpath抓取价格

2024-10-03 04:24:54 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我在浏览器中看到的html

   <li class="lvprice prc">

            <span  class="bold">    
                    $72.95</span>
                </li>

因此,我要抓住的价格是

prices = Selector(response).xpath('//*[@class = "lvprice prc"]')
for price in prices:
    item['price'] = float(price.xpath('span[1]/text()').extract()[0].strip()[1:].replace(',',''))

它对一些url不起作用,所以我查看了对那些不起作用的url的响应。反应是这样的

<li class="lvprice prc">

        <span  class="bold">
                <b>ZAR</b> 2,656.74</span>
            </li>

有什么建议吗

谢谢你!(域是易趣网)你知道吗


Tags: urlresponsehtml浏览器价格liselectorprice
1条回答
网友
1楼 · 发布于 2024-10-03 04:24:54

在执行AJAX之前,这些价格真的在DOM中吗?你知道吗

也许价格是由AJAX调用加载的。你知道吗

尝试在浏览器中禁用JS,看看页面中有多少HTML。你知道吗

顺便说一下,使用这个XPATH可以选择包含多个类的元素。你知道吗

//*[contains(@class, 'class1') and contains(@class, 'class2')]

编辑:

我100%肯定易趣会显示验证码页面,因为来自同一IP的许多请求。请记住,eBay不是婴儿网站,它是一个真正的大公司,他们反对刮擦。它们阻挡了刮伤它们的IP。你知道吗

我也曾在亚马逊、eBay和其他几家大网站上搜刮过,他们真的很反对爬网。你知道吗

这样做,看看什么样的反应看起来像当价格不在你的反应。你知道吗

from scrapy.utils.response import open_in_browser

def parse_details(self, response):
    try:
        Selector(response).xpath('//*[@class = "lvprice prc"]').extract()[0]
    except Exception:
        open_in_browser(response)

这将在操作系统的默认浏览器中打开刮下的页面。你知道吗

相关问题 更多 >