gpt4 book ai didi

Python - 从带有链接的网页下载 CSV 文件

转载 作者:行者123 更新时间:2023-11-28 22:49:42 45 4
gpt4 key购买 nike

我正在尝试从 this page 下载 CSV 文件, 通过 python 脚本。

但是,当我尝试通过浏览器中的链接直接访问 CSV 文件时,会显示一份协议(protocol)表格。在允许下载文件之前,我必须同意此表格。

无法检索到 csv 文件的确切 URL。它是一个发送到后端数据库的值,用于获取文件 - 例如 PERIOD_ID=2013-0:

https://www.paoilandgasreporting.state.pa.us/publicreports/Modules/DataExports/ExportProductionData.aspx?PERIOD_ID=2013-0

urllib2.open()urllib2.read() 都试过了,但是都是协议(protocol)表单的html内容,不是文件内容。

我如何编写一个 python 代码来处理这个重定向,然后获取 CSV 文件并让我保存在磁盘上?

最佳答案

您需要设置 ASP.NET_SessionId cookie。您可以使用 Chrome 上下文菜单中的 检查元素 选项或使用 Firefox 和 Firebug 找到它。扩大。

使用 Chrome:

  1. 右键单击网页(在您同意条款后)并选择检查元素
  2. 点击资源 -> Cookies
  3. 选择列表中的唯一元素
  4. 复制 ASP.NET_SessionId 元素的 Value

使用 Firebug:

  1. 右键点击网页(在您同意条款后),然后点击 *Inspect Element with Firebug
  2. 点击Cookies
  3. 复制 ASP.NET_SessionId 元素的 Value

在我的例子中,我得到了 ihbjzynwfcfvq4nzkncbviou - 它可能对你有用,如果不是你需要执行上述过程。

将 cookie 添加到您的请求中,并使用 requests 模块(基于 answereladc )下载文件:

import requests

cookies = {'ASP.NET_SessionId': 'ihbjzynwfcfvq4nzkncbviou'}
r = requests.get(
url=('https://www.paoilandgasreporting.state.pa.us/publicreports/Modules/'
'DataExports/ExportProductionData.aspx?PERIOD_ID=2013-0'),
cookies=cookies
)

with open('2013-0.csv', 'wb') as ofile:
for chunk in r.iter_content(chunk_size=1024):
ofile.write(chunk)
ofile.flush()

关于Python - 从带有链接的网页下载 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23462488/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com