在Python3.6中登录网站而不使用请求模块

在Python3.6中登录网站而不使用请求模块,python,python-3.x,urllib,Python,Python 3.x,Urllib,我一直在尝试使用Python3.6登录一个网站,但事实证明,这比我最初预期的要困难得多。到目前为止,这是我的代码: import urllib.request import urllib.parse headers = {} headers['User-Agent'] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Saf

我一直在尝试使用Python3.6登录一个网站,但事实证明,这比我最初预期的要困难得多。到目前为止,这是我的代码:

import urllib.request
import urllib.parse

headers = {}
headers['User-Agent'] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36"

url = "https://www.pinterest.co.uk/login/"

data = {
    "email" : "my@email",
    "password" : "my_password"}

data = urllib.parse.urlencode(data)
data = data.encode("utf-8")

request = urllib.request.Request(url, headers = headers, data = data)
response = urllib.request.urlopen(request)
responseurl = response.geturl()

print(responseurl)
这抛出了一个403错误(禁止),我不知道为什么,因为我已经添加了我的电子邮件,密码,甚至更改了用户代理。我是不是错过了一些简单的东西,比如一个烹饪罐

如果可能的话,有没有一种不使用请求模块的方法可以做到这一点,因为这是一个挑战,我只能使用内置模块来实现这一点(但我可以获得帮助,所以我不会作弊)

大多数网站都会使用令牌或其他方式来阻止您尝试执行的操作。一种可能的解决方法是利用浏览器自动化框架,例如通过站点的UI登录