如何使用Python或R脚本下载web表
我正在尝试从下面的链接下载数据。 链接: 我用了下面的python代码不工作如何使用Python或R脚本下载web表,python,r,web-scraping,Python,R,Web Scraping,我正在尝试从下面的链接下载数据。 链接: 我用了下面的python代码不工作 import urllib.request from pprint import pprint from html_table_parser import HTMLTableParser import pandas as pd def url_get_contents(url): req = urllib.request.Request(url=url) f = urllib.request.urlopen
import urllib.request
from pprint import pprint
from html_table_parser import HTMLTableParser
import pandas as pd
def url_get_contents(url):
req = urllib.request.Request(url=url)
f = urllib.request.urlopen(req)
return f.read()
xhtml = url_get_contents('https://dataminer2.pjm.com/feed/act_sch_interchange')
p = HTMLTableParser()
p.feed(xhtml)
pprint(p.tables[1])
print("\n\nPANDAS DATAFRAME\n")
print(pd.DataFrame(p.tables[1]))
我是初学者,请让我知道,如果我做了任何错误的代码 除了下载数据,我想通过更改日期和文本框来下载表 这可能吗?任何帮助,提前谢谢
很遗憾,从上述网站下载HTTP数据不会提供数据 页面包含的(简化版)是一些在后台加载数据的非常基本的HTML和JS代码 可视化webiste加载内容的一种方法是使用Chrome的开发者模式(设置->开发者模式)。快速查看之后(不,仅将URL放入浏览器将不起作用),似乎为了加载包含数据的JSON数据,您需要构造包含正确标题的HTTP请求(例如,
Ocp Apim订阅密钥
)要直接查询可访问数据的API,请尝试以下操作:
import requests
import pandas as pd
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0",
"Ocp-Apim-Subscription-Key": "d408630449804e23b07148259c96b24a",
"Connection": "keep-alive",
}
r = requests.get("https://api.pjm.com/api/v1/act_sch_interchange", headers=headers)
df = pd.DataFrame(r.json()["items"])
如果要更改日期,应更改url:
url=”https://api.pjm.com/api/v1/act_sch_interchange?rowCount=25&sort=datetime_beginning_utc&order=Asc&startRow=1&isActiveMetadata=true&fields=actual_flow,datetime_-start_-ept,datetime_-start_-utc,datetime_-ending_-ept,datetime_-ending_-utc,inadv_-flow,sched_-flow,tie_-line&datetime_-start_-ept=1/27/2021 00:00至2/1/2021 23:59“
感谢Josep提供的信息。很抱歉,我没有尝试你的建议,因为我在下面的线程中得到了正确的代码。非常感谢dimay,您的代码运行得非常好。