Запросите ту же веб-страницу, что и в браузере - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь почистить какую-то веб-страницу, но я сталкиваюсь с проблемой того, что содержимое страницы отличается от того, что я вижу в Firefox

Это мой код:

import requests
from bs4 import BeautifulSoup

url = "https://www.sareb.es/es_ES/inmuebles"
with requests.get(url, verify = False) as html_file:
    soup = BeautifulSoup(html_file.content, "html.parser")
soup.find_all("h3")

Я хочу отменить цены, которые указаны в тегах h3, но вывод не показывает их с soup.find_all("h3").

Есть ли способ получить "ту же" веб-страницу?Спасибо

1 Ответ

1 голос
/ 07 марта 2019

Вы можете использовать запросы на ответ json, создать цикл с номером страницы, чтобы получить больше результатов.Всего страниц 1217.

import requests

url = "https://www.sareb.es/dynamic/assets/json?"


params = {
  "lang": "en_US",
  "page": "1",
  "orderField": "score",
  "orderDirection": "DESC",
  "compId": "7aa1f42482964610VgnVCMServera5ecbf0aRCRD",
  "rtbPage": "Home > Inmuebles",
  "compId": "7aa1f42482964610VgnVCMServera5ecbf0aRCRD"

}

headers = {
  "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36",
  "X-CSRF-TOKEN": "5618a1c8-9d8e-4a88-95a8-2eef4c2b3455",
  "X-Requested-With": "XMLHttpRequest"
}



r = requests.get(url, params=params, headers=headers, verify=False)
d = r.json()

results = (d['result']['assetsPage']['content'])

for result in results:
  print(result['type'], result['price'], result['city'], result['district'])

Результаты:

Country House 281.000 € Sueca Valencia/València
Country House To consult Moaña Pontevedra
Country House 152.000 € Corcos Valladolid
Country House 36.000 € Alcalà de Xivert Castellón/Castelló
Office 130.800 € Sagunto/Sagunt Valencia/València
Office 643.370 € Valencia Valencia/València
Office 646.495 € Valencia Valencia/València
Office 3.100 € Valencia Valencia/València
Office 144.700 € / 1.070 € Palmas de Gran Canaria (Las) Palmas, Las
Office 326.400 € / 1.635 € Murcia Murcia
Offices From 60.000 € Colmenar Viejo Madrid
Office 519.300 € / 2.564 € Alicante/Alacant Alicante/Alacant
Office To consult Palma de Mallorca Balears, Illes
Office 97.000 € Santa Lucía de Tirajana Palmas, Las
Offices From 444.200 € Sevilla Sevilla
Offices From 34.700 € Villamayor Salamanca
...