Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript beautifulsoup scrape中缺少html_Javascript_Python_Html_Web Scraping_Beautifulsoup - Fatal编程技术网

Javascript beautifulsoup scrape中缺少html

Javascript beautifulsoup scrape中缺少html,javascript,python,html,web-scraping,beautifulsoup,Javascript,Python,Html,Web Scraping,Beautifulsoup,我正试图从以下内容中提取数据表: 我希望自动化这个数据拉取,而不是每天手动下载xls文件。我查阅了他们的文档,发现除了执行刮取之外,没有其他简单的自动化方法。查看页面源,看起来这些数据存储在“nggrid”表中。具体而言,数据正在更新中 我使用beautifulsoup在python中创建了一个基线查询,以查看初始输出是什么 这是我的初始代码: from bs4 import BeautifulSoup import requests page_link = 'https://www.pjm.

我正试图从以下内容中提取数据表:

我希望自动化这个数据拉取,而不是每天手动下载xls文件。我查阅了他们的文档,发现除了执行刮取之外,没有其他简单的自动化方法。查看页面源,看起来这些数据存储在“nggrid”表中。具体而言,数据正在更新中

我使用beautifulsoup在python中创建了一个基线查询,以查看初始输出是什么

这是我的初始代码:

from bs4 import BeautifulSoup
import requests

page_link = 'https://www.pjm.com/planning/services-requests/interconnection-queues.aspx'

page_response = requests.get(page_link, timeout=5)

page_content = BeautifulSoup(page_response.content, "html.parser")
在页面内容中存储的数据拉取中,我没有获得与页面源相同的信息。在我期望的地方及其各种子信息,我被提供了以下打开和关闭的标签,中间没有数据:

<pjm-nggrid></pjm-nggrid>


有人知道如何访问nggrid中的数据吗?

自动化xls/xml文件下载和解析,而不是刮取

通过Javascript异步加载数据。您可能想更改
“api-subscription-key”
,您可以在Chrome/Firefox开发者工具中看到该密钥:

注意(这将下载整个数据~10MB,您可以将
'rowCount'
'startRow'
更改为仅加载部分数据)

印刷品:

{
    "items": [
        {
            "requestType": "GI",
            "queueNumber": "A01",
            "projectName": null,
            "commercialName": "Ironwood",
            "stateProvinceName": "PA",
            "countyName": "Lebanon",
            "projectStatus": "In Service",
            "transmissionOwner": "ME",
            "mw": 720.0,
            "mwe": 720.0,
            "mwc": 673.0,
            "mweInservice": 673.0,

...and so on.

这工作做得很好!我对网页抓取和使用这些工具还不熟悉,所以这非常有用。接下来,您发现获取正确url以获取此类数据的最佳方法是什么?我在上遵循了步骤,它似乎与您提供的信息相匹配。@DaveWilson嗯,在这方面,每个页面都有一点不同。但是打开Firefox/Chrome开发者工具,看看页面在哪里(以及如何)发出请求是一个好的开始。
{
    "items": [
        {
            "requestType": "GI",
            "queueNumber": "A01",
            "projectName": null,
            "commercialName": "Ironwood",
            "stateProvinceName": "PA",
            "countyName": "Lebanon",
            "projectStatus": "In Service",
            "transmissionOwner": "ME",
            "mw": 720.0,
            "mwe": 720.0,
            "mwc": 673.0,
            "mweInservice": 673.0,

...and so on.