gpt4 book ai didi

python - Scrapy 遗漏了一些 html 元素

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:56 25 4
gpt4 key购买 nike

我正在使用 scrapy 来获取有关 amazon.com 上书籍的一些数据。我只想要这本书的名称、作者和价格。我想按类别执行此操作,例如计算机科学书籍。

考虑代码片段(一些亚马逊页面):

<div class="a-row">
::before
<div class="a-column a-span7">
<div class="a-row a-spacing-none">...</div>
<div class="a-row a-spacing-none">...</div>
<hr class="a-divider-normal s-result-divier">
<div class="a-row a-spacing-none">...</div>
<div class="a-row a-spacing-none">...</div>
<div class="a-row a-spacing-none">...</div>
</div>
<div class="a-column a-span5 a-span-last"></div>
::after
</div>

因此,我尝试获取 div[@class="a-column a-span7"] 中的 div 元素。但是,只返回前两个 div 元素。我使用的命令是:

>>> books = response.selector.xpath ('.//div[@class="a-fixed-left-grid-col a-col-right"]')
>>> abook = books[0].xpath('.//div[@class="a-row"]')
>>> prices = abook.xpath ('.//div[@class="a-column a-span7"]')
>>> len (prices.xpath('div'))
2

上面的代码做了以下事情:

  1. 获取所有包含特定页面上一本书信息的div元素
  2. 获取第一本“书”并获取包含该书价格的div
  3. 获取类为“a-column a-span7”的 div
  4. 问题是:我不知道为什么类为“a-column a-span7”的 div 中的 div 元素数量

我尝试了不同的方法来获取标签


之后的 div 元素,但似乎 scrapy 停止在标签
上。我也尝试使用以下代码,结果只显示两个元素:

>>> abook.xpath ('div')
[<Selector xpath='div' data=u'<div class="a-column a-span7"><div class'>, <Selector xpath='div' data=u'<div class="a-column a-span5 a-span-last'>]

我花了一些时间,没能解决这个问题。我认为这很简单。

在此链接中:stackref .关于使用标签


有一些解释,但我不太清楚。

最佳答案

您所面临的问题可以通过在您的请求中附加一个用户代理来解决。尝试这样的事情并检查你的结果:

scrapy shell "http://www.amazon.com.br/s/ref=lp_12008582011_nr_n_2?fst=as%3Aoff&rh=n%3A6740748011%2Cn%3A%218169561011%2Cn%3A%218169562011%2Cn%3A12008582011%2Cn%3A12008596011&bbn=12008582011&ie=UTF8&qid=1448202280&rnid=12008582011" -s USER_AGENT='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36'

关于python - Scrapy 遗漏了一些 html 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33851754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com