【问题标题】:Wrong page parsed BeautifulSoup?错误的页面解析了 BeautifulSoup?
【发布时间】:2020-12-26 00:48:13
【问题描述】:

我想在这个网站https://hausratversicherung.friday.de/输入两个值,提交后取回值。我写了以下代码

import requests, re
from robobrowser import RoboBrowser

br = RoboBrowser(parser='html.parser') 
br.open("https://hausratversicherung.friday.de/")

form = br.get_form()
form['area'] = 100
form['postalCode'] = 44326
br.submit_form(form)

src = str(br.parsed())

start = '<div class="Typography-sc-3c3fuf-0 jEIicc" data-testid="totalPrice">'
end = '&nbsp;€</div>'
result = re,search('%s(.*)%s' % (start, end),src).group(1)

print(result)

但是浏览器 br 没有打开提到的页面并获取这些值。

【问题讨论】:

    标签: web-scraping beautifulsoup robobrowser


    【解决方案1】:

    服务器不接受邮政编码44326。对于其他邮政编码,您可以直接查询他们的 API:

    import json
    import requests
    
    
    area = 100
    postalcode = 44309
    
    url = 'https://fdy2-policycenter-production.k8s.blue.friday-prod.de/rest/friday/hc/price?area={area}&postalCode={postalcode}'
    data = requests.get(url.format(area=area, postalcode=postalcode)).json()
    
    # uncomment this to print all data:
    # print(json.dumps(data, indent=4))
    
    # print some info to screen:
    print(data['basicCoverages']['coverages'][0]['insuredSum']['amount'])
    print(data['basicCoverages']['coverages'][0]['price']['amount'])
    

    打印:

    65000.0
    7.81
    

    【讨论】:

    • 但是你是怎么得到这个网址的呢?
    • @JayNerella 我查看了 Firefox 开发者工具 -> 网络选项卡(Chrome 有类似的东西)和提交表单时连接到此 URL 的页面。
    猜你喜欢
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多