Добавление параметров запроса в URL - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь автоматизировать загрузку данных с веб-сайта.Мне нужно передавать динамические параметры на сайт, который меняется ежедневно.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()

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Мне удалось сделать это в Python 2.7, как показано ниже, но мне нужно реализовать это в IronPython 2.7.7 из-за программной зависимости.Я получаю сообщение об ошибке «неизвестный тип URL: https». Я понимаю, что версии IronPython до версии 2.7.9 имели проблемы с https.Есть ли способ обойти проверку безопасности?

>>> import urllib
>>> url_keys = urllib.urlencode( {'action': "SUBSET", 'no_attr_prefix': 1, 'content_key_is_value': 1, 'force_array': 1,
...         'pretty': 0, 'start': "2019-01-02T00:00:00Z", 'end': "2019-01-04T23:59:59Z", 'south': 0.28,
...         'west': 32.77, 'north': 13.64, 'east': 44.72, 'variables': "precipitationCal", 'format': "netCDF",
...         'dataset_id': "GPM Level 3 IMERG Early Half Hourly 0.1 x 0.1 degree Precipitation V05", 'agent_id': "OPeNDAP"})
>>> url = "https://disc.gsfc.nasa.gov/daac-bin/SSW/SSW"
>>> r = urllib.urlopen(url, url_keys)
0 голосов
/ 05 января 2019

Вам необходимо добавить параметры запроса к базовому 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()
...