如何在请求中获取所有POST变量

时间:2016-12-08 11:21:59

标签: python http python-requests

我正试图通过请求库的一些网络抓取工作,并且我偶然发现了加密的POST数据。我想要做的是以编程方式找到一种方法来检索POST变量的键名,以便我可以发送我自己的未过滤值。有没有办法做到这一点,有人可以向我解释或指出我正确的方向吗?

import requests

s = requests.Session('http://thiswebsite.com/login', auth=('username','password'))

# Find some way to determine what k is for POST variables in k,v

params = {
    'INeedThis' : 'So I can pass this',
    'AndAlsoThis' : 'So I can pass this too',
    'AndSoOn' : 'etc'
}

x = post('http://thiswebsite.com/anotherpage', params)
print x.status_code

1 个答案:

答案 0 :(得分:0)

如果您需要按POST发送数据的名称,则必须先GET此页面,然后在{{}找到所有<input><button><text> {1}}

例如 - facebook.com上的登录页面

<form>

结果:

import requests

from bs4 import BeautifulSoup

r = requests.get('http://www.facebook.com/')

soup = BeautifulSoup(r.content, 'lxml')

for x in soup.find_all('form'):
    for i in x.find_all(['input', 'button', 'text']):
        print(i.name, i.get('name'))
    print('---')

如您所见,input lsd input email input pass input None input persistent input default_persistent input timezone input lgndim input lgnrnd input lgnjs input ab_test_data input locale input next --- input lsd input firstname input lastname input reg_email__ input reg_email_confirmation__ input reg_passwd__ input sex input sex button websubmit input referrer input asked_to_login input terms input ab_test_data input contactpoint_label input locale input reg_instance input captcha_persist_data input captcha_session input extra_challenge_params input recaptcha_type input captcha_response button None --- 有很多input,所以有时最好手动使用browser并查看从浏览器发送到服务器的“名称”:)