我正在嘗試從葡萄牙房地產代理網站獲取所有房屋清單。我正在使用以下一小段代碼:
import requests
import bs4
import os
REAL_ESTATE_AGENCY_URL= os.getenv('REAL_ESTATE_AGENCY_URL')
response = requests.get(REAL_ESTATE_AGENCY_URL)
response.raise_for_status()
content = response.text
soup = bs4.BeautifulSoup(content, 'lxml')
all_listings = soup.find_all(name="div", class_="listing-card")
print(all_listings)
我正在使用的相同鏈接是:
uj5u.com熱心網友回復:
您回傳的是空結果,因為該網站完全依賴于 JavaScript。BeautifulSoup 無法模擬資料,但您可以僅使用模塊輕松地從 api 呼叫 json 回應中獲取資料requests。這是作業示例。
腳本:
import requests
import json
body= {"filters":[{"field":"BusinessTypeID","value":"1","type":0},{"field":"NumberOfBedrooms","biggerThan":2,"type":4},{"field":"ListingTypeID","shouldValues":["11","1"],"type":2},{"field":"Region1ID","value":"78","type":0}],"sort":{"fieldToSort":"ContractDate","order":1}}
headers= {
'content-type': 'application/json',
}
api_url = "https://www.remax.pt/Api/Listing/MultiMatchSearch?page=1&searchValue=&size=20"
jsonData = requests.post(api_url, data=json.dumps(body), headers=headers).json()
#print(jsonData)
for item in jsonData['results']:
price=item['listingPriceText']
print(price)
輸出:
125 000 €
137 500 €
132 500 €
142 500 €
132 500 €
152 500 €
132 500 €
142 500 €
135 000 €
145 000 €
110 000 €
198 000 €
120 000 €
260 000 €
265 000 €
305 000 €
252 500 €
500 000 €
75 000 €
142 000 €
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/451768.html
標籤:Python python-3.x 网页抓取 美丽的汤
