使用Python的Webscrape容器

时间:2018-10-31 10:40:21

标签: python web-scraping beautifulsoup containers

我正在尝试从以下网页上的容器中抓取内容:https://www.check24.de/handytarife/vergleich?activeForm=sim

我通常使用beautifulsoup进行webscrapping,但在这种情况下,我发现它不适用于该网站。当我运行“汤”时,我只获得网站架构的详细信息,而不是网站上可用容器中的内容。

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 个答案:

答案 0 :(得分: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'])