我正在尝试从以下网页上的容器中抓取内容: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库能够完成我想做的事情吗?
最好, 山姆
答案 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<e=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'])