0

Python/WebScraping初學者,所以請忍受我。我試圖從this URL獲取所有產品名稱使用請求和美麗的湯刮桌子內容

不幸的是,當我運行我的代碼時沒有任何東西會返回。相同的代碼適用於大多數其他網站,但我已經嘗試了數十種變體,並且無法使其適用於此網站。

這個URL甚至可以使用Bsoup來刮擦嗎?任何反饋意見。

import bs4 
import requests 

url = 'http://www.rakuten.com/sr/searchresults.aspx?qu' 
payload = {'q': 'Python',} 

r = requests.get(url % payload) 

soup = bs4.BeautifulSoup(r.text) 
titles = [a.attrs.get('href') for a in soup.findAll('div.productscontainer a[href^=/prod]')] 

for t in titles: 
    print(t) 





import bs4 
import requests 

url = 'http://www.rakuten.com/sr/searchresults.aspx?qu' 

r = requests.get(url) 

soup = bs4.BeautifulSoup(r.text) 
titles = [td.text for td in soup.findAll('td', attrs={'class': 'searchlist'})] 

for t in titles: 
    print(t) 

如果這種格式是正確的,那麼JS肯定會阻止我拉什麼東西?

+0

您可以在您的問題中編輯代碼,無需將其添加到評論中。 – 2015-02-06 20:44:41

回答

0

首先,你的字符串格式可能是錯誤的。看看這個:

>>> url = 'http://www.rakuten.com/sr/searchresults.aspx?qu' 
>>> payload = {'q': 'Python',} 
>>> url % payload 
'http://www.rakuten.com/sr/searchresults.aspx?qu' 

我想這不是你想要的。您應該查看Python中字符串格式的工作原理,然後提出構建URL的正確方法。其次,「搜索引擎」大量使用JavaScript。通過查看最初檢索的HTML內容,您可能無法檢索到您想要的信息。