0
我一直在製作一個簡單的刮刀,使用美麗的湯根據用戶輸入的郵編獲得食品衛生評級。該代碼正常工作,並正確地從URL中獲取結果。Python - 顯示來自所有頁面的結果不僅僅是第一頁(美麗的湯)
我需要幫助的是如何讓所有結果顯示,而不僅僅是第一頁的結果。
我的代碼如下:
import requests
from bs4 import BeautifulSoup
pc = input("Please enter postcode")
url = "https://www.scoresonthedoors.org.uk/search.php?name=&address=&postcode="+pc+"&distance=1&search.x=8&search.y=6&gbt_id=0&award_score=&award_range=gt"
r = requests.get(url)
soup = BeautifulSoup(r.content, "lxml")
g_data = soup.findAll("div", {"class": "search-result"})
for item in g_data:
print (item.find_all("a", {"class": "name"})[0].text)
try:
print (item.find_all("span", {"class": "address"})[0].text)
except:
pass
try:
print (item.find_all("div", {"class": "rating-image"})[0].text)
except:
pass
我已經通過查看網址發現,顯示的頁面是依賴於所謂的頁面
https://www.scoresonthedoors.org.uk/search.php?award_sort=ALPHA&name=&address=BT147AL&x=0&y=0&page=2#results
分頁代碼的URL字符串變量Next Page按鈕是:
<a style="float: right" href="?award_sort=ALPHA&name=&address=BT147AL&x=0&y=0&page=3#results" rel="next " title="Go forward one page">Next <i class="fa fa-arrow-right fa-3"></i></a>
有沒有一種方法,我可以讓我的代碼,找出輸出H多頁結果呈現,然後從這些頁面中獲取結果?
最好的解決方案是讓代碼改變URL字符串以每次更改「page =」(例如for循環),或者有辦法使用分頁鏈接代碼中的信息來查找解決方案?
非常感謝的人誰提供幫助或看這個問題
scrape_page函數是您的原始代碼。它可以使用一些工作。只要確保這個功能已經建好。其他一切都已準備就緒。有關此代碼的任何問題,請告知我。 –
感謝Philippe,此代碼工作完美。 –