Sid*_*Ram 1 python data-analysis web-scraping
我正在尝试从 NSE 网站抓取 Advances/Declines - https://www1.nseindia.com/live_market/dynaContent/live_market.htm
前进/下降在 HTML 中采用表格格式。但我无法检索网站中显示的实际数值。
from bs4 import BeautifulSoup
import pandas as pd
import requests
url = "https://www1.nseindia.com/live_market/dynaContent/live_market.htm"
webpage = requests.get(url);
soup = BeautifulSoup(webpage.content, "html.parser");
for tr in soup.find_all('tr'):
advance = tr.find_all('td')
print(advance)
Run Code Online (Sandbox Code Playgroud)
我只能得到一个空值或无。我不确定我做错了什么。当我检查网站中的元素时,我看到数值 978、904,但在 Spyder 中,这些元素中的值显示有连字符。有人可以帮忙吗?
该页面用于JavaScript加载这些信息但requests/BeautifulSoup无法运行JavaScript。
使用DevToolsin Chrome/ Firefox(tab Network, filter xhr) 我发现 url 用于JavaScript将其加载为JSON数据,因此我什至不必使用BeautifulSoup它来获取它。
import requests
url = 'https://www1.nseindia.com/live_market/dynaContent/live_analysis/changePercentage.json'
r = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})
data = r.json()
print(data['rows'][0]['advances'])
print(data['rows'][0]['declines'])
print(data['rows'][0]['unchanged'])
print(data['rows'][0]['total'])
Run Code Online (Sandbox Code Playgroud)
顺便说一句:如果没有,它不会发送数据User-Agent
| 归档时间: |
|
| 查看次数: |
1449 次 |
| 最近记录: |