我正在尝试解析亚马逊搜索结果页面。我想要访问012KB,,<id=result_2>
等<li>
标签中包含的数据。find_all('li')
函数只返回4个结果(最多result_3),我认为这很奇怪,因为在浏览器中查看网页时,我看到12结果。为什么Beautifulsoup find_all没有返回完整的结果?
当我打印parsed_html
时,我发现它包含了result_23的所有内容。为什么find_all没有返回所有24个对象?下面是我的代码片段。
import requests
try:
from BeautifulSoup import bsoup
except ImportError:
from bs4 import BeautifulSoup as bsoup
search_url = 'https://www.amazon.com/s/ref=nb_sb_noss_2?url=search-
alias%3Dstripbooks&field-keywords=data+analytics'
response = requests.get(search_url, headers={
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"})
parsed_html = bsoup(response.text)
results_tags = parsed_html.find_all('div',attrs={'id':'atfResults'})
results_html = bsoup(str(results_tags[0]))
results_html.find_all('li')
对于什么是值得的,results_tags
对象也只包含4个结果。这就是为什么我认为问题出现在find_all
步骤中,而不是使用BeautifulSoup对象。
如果有人能帮我弄清楚这里发生了什么,以及我如何访问此网页上的所有搜索结果,我将非常感激!
啊我看......我不知道'类= “S-结果项目celwidget”'可以使用'类_ =的访问没有'celwidget'的结果项目。谢谢你的帮助! – dmzavelsky