python - 将查询参数添加到 URL

标签 python python-2.7 url web-scraping urllib

我正在尝试自动从网站下载数据。我需要将动态参数传递到每天更改的站点。 html 的结构是表格而不是表单。如何传递参数并从 url 获取结果?

这是我尝试过的,它需要在 python 2.7 中

import urllib

url = "https://disc.gsfc.nasa.gov/SSW/#keywords="

params = urllib.urlencode({'keyword':"(GPM_3IMERGHHE)", 't1':"2019-01-02", 't2':"2019-01-03", 'bboxBbox':"3.52,32.34,16.88,42.89"})
r = urllib.urlopen(url, params)

return = r.read()

最佳答案

您需要将查询参数附加到基本 URL,以便 urllib.urlopen 创建 GET 请求。

>>> url = "https://disc.gsfc.nasa.gov/SSW/#keywords="

>>> params = {'keyword':"(GPM_3IMERGHHE)", 't1':"2019-01-02", 't2':"2019-01-03", 'bboxBbox':"3.52,32.34,16.88,42.89"}
>>> quoted_params = urllib.urlencode(params)
>>> quoted_params
'bboxBbox=3.52%2C32.34%2C16.88%2C42.89&t2=2019-01-03&keyword=%28GPM_3IMERGHHE%29&t1=2019-01-02'

>>> full_url = url + quoted_params
>>> full_url
'https://disc.gsfc.nasa.gov/SSW/#keywords=bboxBbox=3.52%2C32.34%2C16.88%2C42.89&t2=2019-01-03&keyword=%28GPM_3IMERGHHE%29&t1=2019-01-02'

>>> resp = urllib.urlopen(full_url)
>>> html = resp.read()

关于python - 将查询参数添加到 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54031584/

相关文章:

python - 删除 pandas 系列中以特定字符串开头的所有文本

Python:了解 os.system 在 linux 和 freeBSD 上的行为

python - 从 SQL 表中获取值以及 Python 中的列表形式的列名

python - 如何在 matplotlib 直方图中选择 bin

java - 从 url 读取响应

reactjs - 如何在 React 中重定向到外部链接?

java - 标准 URL 规范化 - Java

python - Pandas read_excel 保留 A :Z column names

python - 如何防止使用带有 python-mode/rope 和 SimpylFold 的 vim 重构后自动重新折叠 python 代码

python - 试图通过python3将csv文件导入postgresql数据库