如何通过 POST 请求向网站发送请求?
How to send request to a website through POST request?
我的目的是编写一个 python 脚本,其中 returns facebook ID 当 url 作为输入时。我发现这个 website 做同样的事情。
我想问:
1) 我是否可以自己发送一个 POST 请求,其中将包含用户使用 "urllib" 库 "urlopen" 命令输入的 url?然后从 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 →</button>
</form>
嗯,最简单的答案是让您使用 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()
我的目的是编写一个 python 脚本,其中 returns facebook ID 当 url 作为输入时。我发现这个 website 做同样的事情。
我想问:
1) 我是否可以自己发送一个 POST 请求,其中将包含用户使用 "urllib" 库 "urlopen" 命令输入的 url?然后从 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 →</button>
</form>
嗯,最简单的答案是让您使用 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()