【问题标题】:Web scraping in python not loading the datapython中的Web抓取不加载数据
【发布时间】:2020-10-18 19:33:12
【问题描述】:

我正在尝试使用以下 python 代码从 NSE 网站获取数据,我正在获取

[<span class="bold" id="orderBookTradeTMC">-</span>] 

插入

[<span class="bold" id="orderBookTradeTMC">266</span>]

数据 266 未加载 请指教

import requests
import bs4
url="https://www.nseindia.com/get-quotes/equity?symbol=ITC"
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 
   Chrome/57.0.2987.133 Safari/537.36'}
response = requests.get(url, headers=headers)
soup=   bs4.BeautifulSoup(response.text,'lxml')
print(soup.find_all(id='orderBookTradeTMC'))

【问题讨论】:

    标签: python python-3.x web-scraping nsepy


    【解决方案1】:

    数据通过 JavaScript 动态加载。你可以使用requests模块来模拟它。

    例如:

    import json
    import requests
    
    
    url="https://www.nseindia.com/get-quotes/equity?symbol=ITC"
    api_url = 'https://www.nseindia.com/api/quote-equity?symbol={symbol}&section=trade_info'
    headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0',}
    
    symbol = url.split('=')[-1]
    data = requests.get(api_url.format(symbol=symbol), headers=headers).json()
    
    # uncomment this to print all data:
    # print(json.dumps(data, indent=4))
    
    print('Total market capitalization:', data['marketDeptOrderBook']['tradeInfo']['totalMarketCap'])
    

    打印:

    Total market capitalization: 24082488.32
    

    【讨论】:

      【解决方案2】:

      尝试使用 Xpath 进行查找。我无法访问服务器,否则我想检查一下自己。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多