如何使用Python或R脚本下载web表

如何使用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

我正在尝试从下面的链接下载数据。 链接:

我用了下面的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(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,您的代码运行得非常好。