Мне удалось (с помощью сообщества StackOverflow) написать скрипт для очистки веб-страницы недвижимости. Одна ключевая часть этого - requests.post(html, data=data)
, как в:
from bs4 import BeautifulSoup
from lxml import html
import requests
# get homepage session
session = requests.Session()
homepage = session.get('https://www.mlslistings.com/')
soup = BeautifulSoup(homepage.content, "html.parser")
# get security token, post search data
token = soup.find("input", attrs={"name" : "__RequestVerificationToken"})['value']
data = {'transactionType': 'buy', 'listing_status': 'Active', 'searchTextType': '', 'searchText': '94618','__RequestVerificationToken': token, 'property_type': 'SingleFamilyResidence'}
search_results = session.post("https://www.mlslistings.com/Search/ResultPost", data=data)
tree = html.fromstring(search_results.content)
Это прекрасно работает, но я не смогу сделать это снова для другой веб-страницы самостоятельно. Итак, у меня есть пара вопросов:
1. Как найти названия ключей и соответствующие значения в словаре data
? Я проверил HTML-элементы страницы и у меня возникли проблемы с их поиском.
2. Всегда ли добавляется /Search/ResultPost
к URL-адресу веб-страницы для запроса session.post()
? Кажется, это не сработает, если я удалю его, но я не знаю, откуда оно пришло или будет ли это применяться ко всем веб-страницам, которые я пытаюсь в будущем очистить.