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 - python 中 if 和 else 的 namespace 理解

python - 好的图遍历算法

python - 在 django save() 方法中,如果 id 是 UUIDField,您应该如何识别新对象?

Python urllib 向 Google 网站请求速度缓慢

Python "IOError: [Errno 21] Is a directory: '/home/thomasshera/Pictures/Star Wars'"

python - 对具有反向阶段的列表进行排序

python - "Cannot convert Python object argument to type ' <typename> '"- 使用 Cython 包装 C++ 类时出错

python - 使用 urllib(2) 获取和放置 json 数据格式的请求

python - Unicode解码错误: 'utf-8' codec can't decode byte error

带有 StringIO 的 Python3 错误 : initial_value must be str or None,