网页抓取 Python - Immoscout24 - 机器人拒绝

Web Scrapping Python - Immoscout24 - Robot Rejection

所以我正在尝试使用来自该站点的信息进行数据科学项目。但遗憾的是,当我试图抓取它时,它阻止了我,因为它认为我是一个机器人。我在这里看到了几个 post: 但似乎 Immoscout 已经找到了解决此变通方法的方法。有人知道我怎么能解决这个问题吗?谢谢!

我的代码:

import requests
from bs4 import BeautifulSoup
import random

headers = {"User-Agent": "Mozilla/5.0 (Linux; U; Android 4.2.2; he-il; NEO-X5-116A Build/JDQ39) AppleWebKit/534.30 ("
                         "KHTML, like Gecko) Version/4.0 Safari/534.30 , 'Accept-Language': 'en-US,en;q=0.5'"}


url = "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen?enteredFrom=one_step_search"

response = requests.get(url, cookies={'required_cookie': 'reese84=xxx'} ,headers=headers)
webpage = response.content
print(response.status_code)

soup = BeautifulSoup(webpage, "html.parser")
print(soup.prettify)

谢谢:)

数据是从 API 调用 json 响应作为 POST 方法动态生成的,您可以仅使用 requests module.So 提取数据,您可以按照下一个例子。

import requests
headers= {
    'content-type': 'application/json',
    'x-requested-with': 'XMLHttpRequest'
   }

api_url = "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen?pagenumber=1"

jsonData = requests.post(api_url).json()

for item in jsonData['searchResponseModel']['resultlist.resultlist']['resultlistEntries'][0]['resultlistEntry']:
    value=item['attributes'][0]['attribute'][0]['value'].replace('€','').replace('.',',')
    print(value)

输出:

4,350,000 
285,000 
620,000
590,000
535,000
972,500
579,000
1,399,900
325,000
749,000
290,000
189,900
361,825
199,900
299,000
195,000
1,225,000
199,000
825,000
315,000