Контейнеры Webscrape с Python

Я пытаюсь создать контент из контейнеров на этой веб-странице: https://www.check24.de/handytarife/vergleich?activeForm=sim

Я обычно использую Beautifulsoup, но в этом случае я обнаружил, что он не работает на этом сайте. Когда я запускаю свой "суп", я получаю только информацию об архитектуре веб-сайта вместо содержимого из контейнеров, доступных на веб-сайте.

page_link = 'check24.de/handytarife/vergleich?activeForm=sim' 
page_response = requests.get(page_link, timeout=5, verify=False, headers={'User-Agent': 'Mozilla/5.0'}) 
soup = BeautifulSoup(page_response.text,'lxml')

Знаете ли вы какую-нибудь хорошую библиотеку Python, способную делать то, что я пытаюсь сделать?

Лучший Сэм

1 ответ

Решение

Вы пытаетесь запросить только HTML-страницу, которая больше похожа на пустую красивую рамку для необработанных данных. Все данные поступают из XHR

Вы можете получить все данные в формате JSON, как показано ниже:

r = requests.get('https://mobilfunk.check24.de/ajax/result/collection/sim?network_tmobile=yes&network_vodafone=yes&network_o2=yes&data_included=2000&minutes_included=all&select_contract=-24&young_tariff=no&rnp=egal&data_speed=0&lte=no&with_data_tariffs=no&with_high_rejection_rate=all&fixed_traffic_automatic=egal&sms_included=all&tid=CH24_MF_Default').json()

Поскольку вы не сказали, что именно вам нужно очистить, вот как вы можете получить все имена:

for item in r['rows']:
    print(item['tariff']['names']['resultlist'])
Другие вопросы по тегам