python - 使用 urllib 登录站点

标签 python urllib

我正在尝试从此站点获取信息 http://cheese.formice.com/maps/@5865339 ,但是当我请求使用 urllib.urlopen 时,它说我需要登录,我使用的是这段代码:

import urllib
data = {
        'login':'Cfmaccount',
        'password':'tfmdev321',
        'submit':'Login',
    }
url = 'http://cheese.formice.com/login'
data = urllib.urlencode(data)
response = urllib.urlopen(url, data)

我做错了什么?

最佳答案

它不直接使用 urllib,但您可能会发现使用 requests 更容易包裹。 requests 有一个 session 对象 see this answer

import requests

url = 'http://cheese.formice.com/forum/login/login'
login_data = dict(login='Cfmaccount', password='tfmdev321')
session = requests.session()

r = session.post(url, data=login_data)

这将使您登录到该站点。您可以通过以下方式验证:

print r.text #prints the <html> response.

登录后,您可以调用您想要的特定网址。

r2 = session.get('http://cheese.formice.com/maps/@5865339')
print r2.content #prints the raw html you can now parse and scrape

关于python - 使用 urllib 登录站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29048168/

相关文章:

python - urllib.urlopen 有效,但 urllib2.urlopen 无效

python - 如何重新循环程序回到开头

python - 按多个元素按升序和降序对元组列表进行排序

python - 枚举所有可能的二人组星座

python - 为什么我使用 urllib2 得到 urllib2.HTTPError 而使用 urllib 没有错误?

python - 如何将http响应分成 block ?

python - 在 Mac 上查找文件的目录地址

python - django.contrib.auth.models.User.DoesNotExist : User matching query does not exist

python - HTML 数据对 urllib 隐藏

python - 发出 HTTP[S] 请求的首选方式