如何通过POST请求向网站发送请求?

时间:2016-07-26 11:26:02

标签: python post web-development-server

我的目的是编写一个python脚本,当输入url作为输入时返回facebook ID。我发现这个website做了同样的事情。

我想问:

1)我是否可以自己发送POST请求,其中包括用户使用" urllib"输入的URL。图书馆" urlopen"命令?然后从urllib.read()函数中提取答案?

2)如果不可能,我该怎么做呢?

我对POST和HTTP一无所知。但无法解决这个问题。

通过阅读页面源,POST请求以这种方式发送:

<form method="POST">
    <div class="form-group">
        <input
            name="url"
            type="text"
            placeholder="https://www.facebook.com/YourProfileName"
            class="input-lg form-control">
        </input>

    </div>
    <button type="submit" class="btn btn-primary">Find numeric ID &rarr;</button>

</form>

1 个答案:

答案 0 :(得分:4)

最简单的答案是你使用requests
你可以使用

安装它
pip install requests

正常用法是(假设您正在使用python 3):

import requests
payload={
    'key1':'value1',
    'key2':'value2'
}
r = requests.post('http://url', data = payload)
print(r.content)

如果您想使用urllib,可以使用找到here

的示例代码
import urllib.parse
import urllib.request

url = 'http://www.someserver.com/cgi-bin/register.cgi'
values = {'name' : 'Michael Foord',
          'location' : 'Northampton',
          'language' : 'Python' }

data = urllib.parse.urlencode(values)
data = data.encode('ascii') # data should be bytes
req = urllib.request.Request(url, data)
with urllib.request.urlopen(req) as response:
   the_page = response.read()