比如要模拟登录 SegmentFault,该用哪个方法呢?
import requests
url = 'http://segmentfault.com/user/login'
比如要模拟登录 SegmentFault,该用哪个方法呢?
import requests
url = 'http://segmentfault.com/user/login'
如果你想学习怎么爬一个网页,去学学怎么写网页。
你连 GET/POST/HTTP/cookie 都不知道是什么的话。。
可以看 http://blog.binux.me/2013/09/howto-crawl-web/
登录一般的过程是:
1、POST 帐号密码
2、服务器给你写 cookie (至于为什么要写 cookie,学一学怎么写网页)
requests 是一个 HTTP 请求库,你只要模拟出 POST 请求就 ok 了。
而请求可以通过 chrome > network 工具查看。
在官方documation搜索simulate user login。
或者google Python scrapy simulate user login
其实,我觉得模拟用户登陆的难点在于验证码,到现在还没解决。http://segmentfault.com/q/1010000002421571
登陆主要是cookie的管理。
requests.session附带完整的管理功能。
使用方法和直接使用requests一致。在登陆页面post帐号 密码后,访问你需要的页面就行
2 回答5.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答941 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
使用
requests.Session()
。示例如下:
另外,很多网站会设置csrf或其他token保证安全或防抓取,建议从源代码,或chrome的开发者工具中观察一下。
关于
requests.Session()
可以参考官方文档:http://docs.python-requests.org/en/latest/user/advanced/#session-objects关于登录例子,可以参考这篇文章,有很详细的
requests
登录网站的说明。