我正在嘗試解析亞馬遜搜索結果頁面。我想要訪問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