【问题标题】:Python scraping response dataPython 抓取响应数据
【发布时间】:2021-06-14 18:58:53
【问题描述】:

我想获取有关特定网站的响应数据。 我有这个网站: https://enjoy.eni.com/it/milano/map/ 如果我打开浏览器调试器控制台,我可以看到一个给出 json 响应的 posr 请求:

如何在 python 中通过抓取网站来获取此响应? 谢谢

【问题讨论】:

    标签: python web-scraping


    【解决方案1】:

    显然 web 服务有一个 PHPSESSID 验证,所以我们需要先使用适当的用户代理来获取它:

    import requests
    import json
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36'
    }
    r = requests.get('https://enjoy.eni.com/it/milano/map/', headers=headers)
    session_id = r.cookies['PHPSESSID']
    headers['Cookie'] = 'PHPSESSID={};'.format(session_id)
    res = requests.post('https://enjoy.eni.com/ajax/retrieve_vehicles', headers=headers, allow_redirects=False)
    json_obj = json.loads(res.content)
    

    【讨论】:

    • 嗨,Yohanes。是的,我刚刚尝试使用我的浏览器的 PHPSESSID 并且可以工作。但是我也尝试通过 CookieLib 检索此值,但是如果我根据请求将其传递给网站的响应 eis html 而不是 json,则在检索此值之后
    • @APPGIS 明白了。我已经更新了我的答案。显然我们只需要在第一个请求中添加User-Agent 即可获得正确的cookie
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 2018-01-28
    • 2017-09-04
    • 1970-01-01
    • 2020-05-30
    相关资源
    最近更新 更多