我正在為這個網站做一個網頁抓取專案。 https://yellowpages.com.eg/en/search/fast-food 我設法抓取了資料,但我在分頁上苦苦掙扎,因為我想制作一個回圈來抓取下一頁按鈕,然后使用從抓取的 URL下一個按鈕執行相同的程序。
url = 'https://yellowpages.com.eg/en/search/fast-food'
while True:
r = requests.get(url)
soup = BeautifulSoup(r.content, 'lxml')
pages = soup.find_all('ul', class_='pagination center-pagination')
for page in pages:
nextpage =page.find('li', class_='waves-effect').find('a', {'aria-label' : 'Next'})
if nextpage:
uu = nextpage.get('href')
url = 'http://www.yellowpages.com.eg' str(uu)
print(url)
else:
break
此代碼按分頁順序回傳下一個 URL,然后跳出回圈。
uj5u.com熱心網友回復:
問題是
nextpage =page.find('li', class_='waves-effect').find('a', {'aria-label' : 'Next'})
確實回傳下一個按鈕,但只要上一個按鈕不存在,這意味著它會在您離開第一頁時立即中斷(它回傳無)。
而是page.find_all('li', class_='waves-effect')回傳 Next 和 Previous 按鈕。
要(也許)穩健地獲得“下一步”按鈕,請將您的行更改為
nextpage =page.find_all('li', class_='waves-effect')[-1].find('a', {'aria-label' : 'Next'})
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/441995.html
標籤:Python for循环 网页抓取 美丽的汤 网络抓取语言
