- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Scraping an AJAX web page using python and requests
我使用上面链接中的脚本在 Barchart 网站上获取了一个表格,但它最近以某种方式停止工作,并显示错误消息 {'error': {'message': 'The payload is invalid.', 'code': 400}}。我想一些归档名称已更改,但我对网络扫描很陌生,我无法弄清楚如何修复它。有什么建议?
import requests
geturl=r'https://www.barchart.com/futures/quotes/CLJ19/all-futures'
apiurl=r'https://www.barchart.com/proxies/core-api/v1/quotes/get'
getheaders={
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'en-US,en;q=0.9',
'cache-control': 'max-age=0',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36'
}
getpay={
'page': 'all'
}
s=requests.Session()
r=s.get(geturl,params=getpay, headers=getheaders)
headers={
'accept': 'application/json',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'en-US,en;q=0.9',
'referer': 'https://www.barchart.com/futures/quotes/CLJ19/all-futures?page=all',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36',
'x-xsrf-token': s.cookies.get_dict()['XSRF-TOKEN']
}
payload={
'fields': 'symbol,contractSymbol,lastPrice,priceChange,openPrice,highPrice,lowPrice,previousPrice,volume,openInterest,tradeTime,symbolCode,symbolType,hasOptions',
'list': 'futures.contractInRoot',
'root': 'CL',
'meta': 'field.shortName,field.type,field.description',
'hasOptions': 'true',
'raw': '1'
}
r=s.get(apiurl,params=payload,headers=headers)
j=r.json()
print(j)
OUT: {'error': {'message': '有效载荷无效。', 'code': 400}}
最佳答案
这也发生在我身上。这是因为网站从内部 API 获取表格,并且应对 cookie 进行解码以避免此错误。
试试这个解决方案:
1- 在代码开头导入 unquote 函数
from urllib.parse import unquote
2-更改此行:
'x-xsrf-token': s.cookies.get_dict()['XSRF-TOKEN']
对此:
'x-xsrf-token': unquote(unquote(s.cookies.get_dict()['XSRF-TOKEN']))
关于python - 使用python在Barchart网站上抓取表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62605088/
我为 BarChart 设置了 OnChartValueSelectedListener 但是当我点击任何条形图或 BarChart 中的任何地方时只有 onNothingSelected() 正在调
我正在尝试动态设置 BarChart Series 颜色。 我希望相同的系列名称始终具有相同的颜色。它在图表中并不总是相同的系列名称,这就是为什么我不能依赖图表中的位置(默认情况下颜色在数据列表中的相
我的窗口有以下 Controller : package window; import javafx.event.ActionEvent; import javafx.fxml.FXML; impor
如何更改 JavaFX BarChart 中条形的颜色? 我找不到通过 css setStyle 方法改变颜色的方法。 最佳答案 你可以使用css设置条形颜色 .default-color0.char
我有一个 flutter 应用程序,需要 Bar chart我可以在其中单击栏来打开包含相关信息的新页面。 我该怎么做? /// Bar chart example charts.BarChart(
我有一个 flutter 应用程序,需要 Bar chart我可以在其中单击栏来打开包含相关信息的新页面。 我该怎么做? /// Bar chart example charts.BarChart(
我在使用条形图时遇到问题。我为 Primefaces 编写了一个 barCharts 示例,但在页面上它们不可见。 这里是 Bean 类: import java.io.Serializable; i
我正在使用 Flot API 在我的应用程序中以图形方式绘制数据。我能够绘制数据并且能够实现工具提示。但我在使用工具提示时遇到问题。它显示 x 轴上的标签值“未定义”。 $(function () {
我想我已经尝试了所有方法,但我无法解决这个问题。 对于每家公司,我需要用该公司的颜色分组并显示 3 个条形图,并为每个条形图显示注释。 我只能得到这样的东西: 但是我真正需要的是这样的: 我已经花了超
我在后台的 iOS 应用程序中使用 NSTimer,它每 30 秒在数组中保存一些数据。该应用程序以折线图显示最后 10 个值(5 分钟的值)。 我的问题是当应用程序不在屏幕上时,在后台使用每 30
在我的项目中我使用 GWT 图表 - 我想从所有条开始的地方删除垂直线,并减少条之间的空间。是否可以?我已经尝试了几次,但没有成功。这是我的 Java 代码: BarChart chart
我的窗口有以下 Controller : package window; import javafx.event.ActionEvent; import javafx.fxml.FXML; impor
我的数据从 750 000 - 1 000 000+ 变化,所以我实际上不需要看到低于 750 000 的值。 如果我只是使 y[i] - 750 000 那么还有另一个问题(在 AxisY 上显示最
我正在创建谷歌条形图,它从数据库中获取数据。问题是数据包含低于“1”的值,如 0.6、0.7 等它不会出现在图表上。图表仅显示从 1 开始的值。 google.load('visualization
我正在使用 MPAndroidChart 在我的 Android 应用程序中绘制图表。 一个要求是我需要从非零 y 位置开始绘制条形图,如 this 中所建议的那样.所以我同样使用 CandleSti
是否可以将 UILabel 设置为条形图的水平条? (CorePlot) 谢谢! 最佳答案 如果您只需要标记其中一个条形,您可以使用 CPTPlotSpaceAnnotation。将 anchorPl
我正在使用 MPAndroidChart 库作为条形图,其中,我使用 chart.setDrawValueAboveBar(false) 来设置条形内部的条形值,现在我想要在条形内部垂直显示值。 请帮
我在 Google 中找不到它,所以我在这里询问。如何设置取决于 PrimeFaces BarChart 值的条形颜色。例如,如果我的值小于 50%,则条形图为红色。也许有人有类似的问题并且可以给我发
正如标题所说。基本上我有一个 ArrayList,其中 DiceRoll 是一个在 TableView 中成功使用的类,用于在值更改时更新值。 public class DiceRoll { priv
我需要从 BarChart 中删除右边的图例。 这是我的代码。 mChart = (BarChart) rootView.findViewById(R.id.chart1); mCha
我是一名优秀的程序员,十分优秀!