Я пытаюсь программно загрузить (открыть) данные с веб-сайта, используя BeautifulSoup.
Веб-сайт использует php-форму, где вам необходимо предоставить входные данные, а затем вывести полученные ссылки, по-видимому, в этой форме.
Мой подход был следующим
Шаг 1: опубликовать данные формы через запрос
Шаг 2: парсинг полученных ссылок через BeautifulSoup
Однако, похоже, что это не работает / я делаю неправильно, так как метод post, кажется, не работает, и Шаг 2 даже не возможен, так как нет доступных результатов.
Вот мой код:
from bs4 import BeautifulSoup
import requests
def get_text_link(soup):
'Returns list of links to individual legal texts'
ergebnisse = soup.findAll(attrs={"class":"einErgebnis"})
if ergebnisse:
links = [el.find("a",href=True).get("href") for el in ergebnisse]
else:
links = []
return links
url = "https://www.justiz.nrw.de/BS/nrwe2/index.php#solrNrwe"
# Post specific day to get one day of data
params ={'von':'01.01.2018',
'bis': '31.12.2018',
"absenden":"Suchen"}
response = requests.post(url,data=params)
content = response.content
soup = BeautifulSoup(content,"lxml")
resultlinks_to_parse = get_text_link(soup) # is always an empty list
# proceed from here....
Может кто-нибудь сказать, что я делаю не так. Я не очень знаком с постом запроса. Поле формы для "бис", например выглядит следующим образом:
<input id="bis" type="text" name="bis" size="10" value="">
Если бы мой подход был ошибочным, я бы оценил любой намек, как работать с такого рода сайтом.
Ой!