python请求从下拉菜单中删除post并填写表单

2024-04-25 19:38:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把这一页删掉:

http://www.barb.co.uk/viewing-data/weekly-top-30/

我想用以下数据填写表格:

station=BBC2 (SD+HD)
year=2016
month=January
week=11 Jan - 17 Jan

所以我试过了:

^{pr2}$

html_res.html中,我没有得到所需的数据。 我不知道我做错了什么。 谢谢。在


Tags: 数据httpdatatophtmlwwwjanstation
2条回答

你可以用几种方法达到同样的效果。下面是一个简洁的例子:

import requests

payload={
'method':'POST','station[]':'2','period[]':'201601060117'
}

page = requests.post("http://barb-api.mediatel.co.uk//whats-new/weekly-top-30", params=payload)
for item in page.json():
    data = item['data']['201601060117']
    for name in data:
        print(name['programme_name'],name['data_value'],name['28_days_total'])

部分结果:

^{pr2}$

使用此代码。在

import requests
import json

headers = {
    'Origin': 'http://www.barb.co.uk',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'en-US,en;q=0.8,he;q=0.6',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'Accept': '*/*',
    'Referer': 'http://www.barb.co.uk/viewing-data/weekly-top-30/',
    'Connection': 'keep-alive',
}

data = [
  ('method', 'POST'),
  ('station[]', '839'),
  ('period[]', '201710060108'),
]

r = requests.post('http://barb-api.mediatel.co.uk//whats-new/weekly-top-30', headers=headers, data=data)
print(json.dumps(r.json(),indent=2))

您可以使用this网站将curl转换为python代码。在

相关问题 更多 >