如何使用网络爬虫/刮刀登录?

时间:2016-02-17 06:18:13

标签: python web-crawler python-requests urllib scrape

我想创建一个程序来抓取我的帐户读取多个网站的列表,并将它们添加到我的Safari阅读列表中。但是,我无法使用普通链接进行抓取,因为它需要登录。

我如何通过这个?

1 个答案:

答案 0 :(得分:0)

您可能正在使用HTTP GET消息来加载HTML页面。要登录,具有适当凭据(用户名和密码)的HTTP POST消息将有所帮助。

以下是登录社交网站的HTTP POST消息示例:

post_message = ('POST /accounts/login/ / HTTP/1.1\r\n'
                'Host: www.fakebook.com\r\n'
                'Connection: keep-alive\r\n'
                'Content-length: ' + contentlength +'\r\n'
                'Origin: http://'+host+'\r\n'
                'User-Agent: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.1058$
                'Content-type: application/x-www-form-urlencoded\r\n'
                'Accept-Encoding: gzip, deflate\r\n'
                'Cookie: csrftoken='+csrftoken+'; sessionid= '+sessionid+'\r\r\n\n')

# Add POST body to header.
post_message += ('username='+username+'&password='+password+'&csrfmiddlewaretoken='+csrftoken+'&next=/fakebook/\r\n\r\n')

您必须从登录网站的HTML页面中提取 sessionid csrftoken

有关HTTP状态代码的详细信息,请参阅:[http://www.jmarshall.com/easy/http/][1]

相关问题