[英]python beautifulsoup - how to go to next page while next page doesn't have an unique address
[英]How to go to the next page using BeautifulSoup?
我正在嘗試從該網站的所有 37 個 web 頁面中抓取數據。
我正在刪除的網站不允許通過搜索欄轉到下一頁。
這是為下一個按鈕編寫的 HTML。
<a href="javascript:void('Next')" class="next">
<svg viewBox="0 0 36 36" data-use="/cms/svg/site/icon_caret_right.36.svg">
(path tag and data)
</svg>
</a>
我知道這可以用 Selenium 來完成,但是有什么辦法可以用 BeautifulSoup 來完成嗎?
有沒有辦法從下一頁抓取數據?
因此,您可以在此處使用requests
向每個頁面發送 go。 它是通過一個 post 請求,然后使用查詢頁面參數來取回連續頁面的數據:
import requests
from bs4 import BeautifulSoup
import re
url = 'https://www.stfrancismedicalcenter.com/find-a-provider/'
for page in range(1, 38):
print(f'\t\tPage: {page}')
payload = {
'_m_': 'FindAPhysician',
'PhysicianSearch$HDR0$PhysicianName': '',
'PhysicianSearch$HDR0$SpecialtyIDs': '',
'PhysicianSearch$HDR0$Distance': '5',
'PhysicianSearch$HDR0$ZipCodeSearch': '',
'PhysicianSearch$HDR0$Keywords': '',
'PhysicianSearch$HDR0$LanguageIDs': '',
'PhysicianSearch$HDR0$Gender': '',
'PhysicianSearch$HDR0$InsuranceIDs': '',
'PhysicianSearch$HDR0$AffiliationIDs': '',
'PhysicianSearch$HDR0$NewPatientsOnly': '',
'PhysicianSearch$HDR0$InNetwork': '',
'PhysicianSearch$HDR0$HasPhoto': '',
'PhysicianSearch$FTR01$PagingID': str(page)}
response = requests.post(url, data=payload)
soup = BeautifulSoup(response.text, 'html.parser')
items = soup.find_all('li', {'class':re.compile("^half item-")})
for item in items:
itemName = item.find('div', {'class':'info'}).find_all('span')[0].text
itemType = item.find('div', {'class':'info'}).find_all('span')[1].text
phone = item.find('li', {'class':'inline-svg phone'}).text.strip()
address = item.find('address').text.strip().replace('\t','')
print(f'\n{itemName}\n{itemType}\n{phone}\n{address}\n')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.