Python Scrapy遗漏了一些html元素
我用scrapy在amazon.com上获取一些关于书籍的数据。 我只想知道这本书的名字、作者和价格。我想分类,比如计算机科学书籍 考虑代码片段(一些amazon页面): 上述代码执行以下操作:Python Scrapy遗漏了一些html元素,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我用scrapy在amazon.com上获取一些关于书籍的数据。 我只想知道这本书的名字、作者和价格。我想分类,比如计算机科学书籍 考虑代码片段(一些amazon页面): 上述代码执行以下操作: Get all div元素包含特定页面上某本书的相关信息 获取第一本“书”,并获取包含该书价格的div 使用类“a-column a-span7”获取div 问题是:我不知道为什么类“a-column a-span7”的div中的div元素的数量 我尝试了不同的方法来获取标签后面的div元素,但似乎标签
后面的div元素,但似乎标签
上有一个很小的停顿。我还尝试使用了以下代码,结果只显示了两个元素:
>>> 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'>]
abook.xpath('div')
[, ]
我花了一些时间,但我无法解决这个问题。我认为这很简单
在此链接中:。关于使用标签
和
有一些解释,但我不清楚。您面临的问题可以通过在请求中附加
用户代理来解决。尝试以下方法并检查结果:
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'
你能提供从哪里抓取的链接吗?是的。这是链接:。页面为葡萄牙语(巴西)。找不到问题中提到的hr
标记。在class=“a-column a-span7”
之后只有两个div,作者位于xpathdiv[@class=“a-column a-span7”]/div[1]/a/h3/text()
,price位于div[@class=“a-column a-span7”]/div[2]/a/span/text()
hr
标记只出现在少数列表中。如给定链接中的列表9。您可以通过打印xpath的元素来验证它/*[@id=“result_9”]
太好了!这就是现在的工作。非常感谢。那么,为什么有必要使用用户代理呢?有些网站不允许您提取数据,因此有时它们会阻止或限制对来自机器人的所有请求的数据访问,而机器人不识别自身,即没有任何与之关联的用户代理。
>>> 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'>]
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'