Python 从graphicView.bidvalue获取值
我需要使用python中的Beauty Soup从这段代码中获得52329的值。我该怎么做才能正确地做呢Python 从graphicView.bidvalue获取值,python,css,web,web-scraping,beautifulsoup,Python,Css,Web,Web Scraping,Beautifulsoup,我需要使用python中的Beauty Soup从这段代码中获得52329的值。我该怎么做才能正确地做呢 <span class="chart-info-val ng-binding" ng-bind="graphicView.bidvalue">5,2329</span> Ps:没有代码,所以我只能假设某些事情 代码示例 解释 select方法使用CSS选择器获取由beautifulsoup解析的HTML soup.select
<span class="chart-info-val ng-binding" ng-bind="graphicView.bidvalue">5,2329</span>
Ps:没有代码,所以我只能假设某些事情 代码示例 解释 select方法使用CSS选择器获取由beautifulsoup解析的HTML
soup.select('span.chart-info-val ng-binding').get_text()
上面的例子
:抓取任何span标签span
:表示CSS中的类,此处该类为图表信息值绑定
:使用类图表信息值绑定从span中获取文本get_text()
url = 'https://api.cotacoes.uol.com/asset/intraday/list/'
params = (('format', 'JSON'),
('fields', 'price,high,low,open,volume,close,bid,ask,change,pctChange,date'),
('item', '704'),
('', ''),)
headers = {
'Accept': 'application/json, text/plain, */*',
'Referer': 'https://economia.uol.com.br/cotacoes/bolsas/acoes/bvsp-bovespa/wege3-sa',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',}
有了它,您可以使用下面的代码进行一些测试。事实证明,您不需要这些标题,它只需要参数
编码示例
输出
解释
这里我们从curl.trillworks.com获取了参数,并使用图像中的URL,使用这些特定参数发出get请求。我们得到的响应称为JSON对象。json()方法将此json对象转换为可操作的python字典。在这里,您可以看到所需数据的输出
为了得到你想要的数据,我们必须通读这本字典。您可以在字典的文档部分看到所需的数据
data = response.json()['docs']
输出:
[{'price': 58.09,
'high': 58.46,
'low': 54.7,
'open': 55.03,
'volume': 6435500,
'close': 54.55,
'bid': 58.09,
'ask': 58.11,
'change': 3.54,
'pctChange': 6.49,
'date': '20200717170900'},
现在我们可以看到价格嵌套在一个列表中
data = response.json()['docs'][0]['price']
输出
通过一些工作,您可以非常高效地获取数据。看起来您的代码没有通过。我用我正在使用的代码编辑了这篇文章,我使用了您的方法,输出仍然“[]”您能提供您正在使用的全部代码吗?例如,我没有看到URL。我的回答是基于应该发生什么的假设。由于动态内容,beautifulsoup可能无法解析该页面。url为“”,我正在尝试获取动态生成的58,09span元素。也就是说,网站中的javascript正在生成数据。您需要能够动态地获取这些数据。在网站上,您可以通过反向工程HTTP请求来实现这一点。这有多难?
{'prev': None,
'next': None,
'docs': [{'price': 58.09,
'high': 58.46,
'low': 54.7,
'open': 55.03,
'volume': 6435500,
'close': 54.55,
'bid': 58.09,
'ask': 58.11,
'change': 3.54,
'pctChange': 6.49,
data = response.json()['docs']
[{'price': 58.09,
'high': 58.46,
'low': 54.7,
'open': 55.03,
'volume': 6435500,
'close': 54.55,
'bid': 58.09,
'ask': 58.11,
'change': 3.54,
'pctChange': 6.49,
'date': '20200717170900'},
data = response.json()['docs'][0]['price']
58.09