Я новичок в веб-парсинге с использованием Python. Я успешно научился собирать информацию с некоторых веб-сайтов, например, https://www.jameda.de и википедия. Но я наткнулся на веб-сайт, который не открывает новую ссылку при поиске определенных данных. Я не понимаю, как очистить этот сайт. Любая помощь горячо приветствуется.

Интернет сайт: https://www.kvwl.de/earzt/index.htm

В полях поиска вы можете ввести, например, «Берлин, Германия» в поле (Ihr Standort) и посмотреть веб-адрес, он не меняется. Также я посмотрел в поле проверки, я не вижу ссылки для очистки данных.

Любая помощь очень ценится !!

Ниже приведен код, который я использовал для извлечения информации с другого веб-сайта:

import requests
from bs4 import BeautifulSoup, NavigableString, Tag
import urllib.request
import re
base_site = "https://www.tk-aerztefuehrer.de/TK/Suche_SN/index.js?a=DL&Otn1=798&Ic1=127&Ftg=33014+Bad+Driburg&Ftg_e=&Lng=36"
response = requests.get(base_site)
response.status_code
html = response.content
html

soup = BeautifulSoup(html, 'lxml')
with open('TK_33014_Bad_Driburg_LXML.html','wb') as file:
    file.write(soup.prettify('utf-8'))

divs = soup.find_all("div",{"class": "card dl"})

headings = [div.find('a').text for div in divs]
headings

0
ChKYu 2 Мар 2021 в 15:53

1 ответ

Лучший ответ

Этот сайт использует JavaScript для поиска, а BeautifulSoup анализирует только HTML.

Вот две вещи, которые вы можете сделать, чтобы очистить страницу следующим образом:

Вот запрос в виде извлечения JavaScript:

fetch("https://www.kvwl.de/DocSearchService/DocSearchService/searchDocs", {
  "headers": {
    "accept": "application/json, text/javascript, */*; q=0.01",
    "accept-language": "en-US,en;q=0.9",
    "content-type": "application/json; charset=UTF-8",
    "sec-fetch-dest": "empty",
    "sec-fetch-mode": "cors",
    "sec-fetch-site": "same-origin"
  },
  "referrer": "https://www.kvwl.de/earzt/index.htm",
  "referrerPolicy": "same-origin",
  "body": "{\"Latitude\":52.52000659999999,\"Longitude\":13.404954,\"DocGender\":\"\",\"DocNamePattern\":\"\",\"ExpertiseAreaStructureId\":\"\",\"ApplicableQualificationId\":\"\",\"SpecialServiceId\":\"\",\"LanguageId\":\"\",\"BarrierFreeAttributeFilter\":{\"ids\":[]},\"PageId\":0,\"PageSize\":20}",
  "method": "POST",
  "mode": "cors",
  "credentials": "omit"
});

Затем вы можете запросить этот URL-адрес прямо в своем скрипте, передать необходимые переменные в тело, и вы должны получить ответ JSON с ответом.

0
Taxel 2 Мар 2021 в 13:13