【问题标题】:how to get the response json data from network call in XHR using Python selenium web driver chorme如何使用 Python selenium web driver chorme 从 XHR 中的网络调用中获取响应 json 数据
【发布时间】:2019-02-08 00:34:36
【问题描述】:

我需要来自 python selenium webdriver 中网络调用的 json 数据,甚至是来自网络调用的一个特定 url 响应 json 数据

这是我想要的样本数据的图像

正是我想要来自网络调用的 json 响应中的“Mobikwik Offer”

任何人都可以帮助我,还建议其他选项来获取此数据。提前致谢

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    您可以找到pre 元素并获取它的文本,然后通过json.loads(): 加载它

    import json 
    
    pre = driver.find_element_by_tag_name("pre").text
    data = json.loads(pre)
    print(data)
    

    更多信息请访问

    http://seleniummaster.com/sitecontent/index.php/selenium-web-driver-menu/selenium-test-automation-with-python/235-how-to-test-json-with-selenium-python

    【讨论】:

      【解决方案2】:

      您可以在此处使用带有requests 的请求URL。硒是不必要的。

      import requests
      
      url = 'https://s0.dominosindia.in/s0-olo-api-bucket/v1/widgetcontent/brandOffers'
      find = 'Mobikwik Offer'  
      
      headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
      
      response = requests.get(url, headers=headers).json()
      data = response['data']
      
      for ele in data:
          if ele['alt'] == find:
              id_key = ele['id']
              imageUrl = ele['imageUrl']
              alt = ele['alt']
      
              print (ele)
      

      【讨论】:

      • 我提供了这个网站作为示例。我需要做与从网络调用中提取相同的操作,因为我的实际站点受到动态身份验证输入的保护。如果这可以用硒来完成,那就太好了。
      【解决方案3】:

      您需要检查请求 url 的标头。将该 api url 与请求库一起使用。比如:

      import requests, json
      
      url = *url here*
      response = requests.get(url)
      json_value = response.json()
      alt = json_value['alt']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-03
        • 2018-08-31
        • 2021-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多