【问题标题】:Not able to get updated data from web page using BeautifulSoup无法使用 BeautifulSoup 从网页获取更新的数据
【发布时间】:2021-06-01 08:47:10
【问题描述】:
import requests 
URL = 'https://www.moneycontrol.com/india/stockpricequote/cigarettes/itc/ITC'
response = requests.get(URL)  
soup = BeautifulSoup(response.text,'html.parser')
#     time.sleep(5)
var1 = float(soup.find('td', attrs={'class': 'espopn'}).get_text().replace(",",""))

使用此代码,我可以获取 var1 的值,但是我正在访问的网页在我们登陆网页后不显示实时数据,需要 1 秒才能更新一次实时值我们登陆网页。

因此,我在 var1 中获得的值不是实时值。 想知道如何在我登陆网页后才能进行网页抓取。 提前致谢。

【问题讨论】:

标签: python python-3.x web-scraping beautifulsoup python-requests


【解决方案1】:

1.由于数据正在动态更新,因此很难从bs4 获取,因此您可以尝试从 api 本身了解如何找到它

2.进入 chrome 开发者模式,然后网络选项卡找到 xhr,现在在名称选项卡下重新加载您的网站,您会找到链接,但有很多

3.但是在左侧有搜索,因此您可以搜索价格并从中提供网址,然后单击该转到标题复制该网址并使用requests模块拨打电话

import requests
from bs4 import BeautifulSoup

res=requests.get("https://api.moneycontrol.com/mcapi/v1/stock/get-stock-price?scIdList=ITC%2CVST%2CGPI%2CIWP540954%2CGTC&scId=ITC")
main_data=res.json()
main_data['data'][0]

输出:

{'companyName': 'ITC',
 'lastPrice': '215.25',
 'perChange': '-0.62',
 'marketCap': '264947.87',
 'scTtm': '19.99',
 'perform1yr': '7.33',
 'priceBook': '4.16'}

图片:

【讨论】:

  • 您可以使用此url 拨打电话,仅供 ITC 使用
猜你喜欢
  • 1970-01-01
  • 2017-10-15
  • 2021-01-02
  • 1970-01-01
  • 2012-03-18
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多