如何使用网络爬虫/抓取器登录?

问题描述 投票:0回答:1

我想创建一个程序,该程序将抓取我的多个网站的帐户阅读列表,并将它们添加到我的

Safari
阅读列表中。但是,我不能只使用普通链接进行爬网,因为它需要登录。

我该如何克服这个问题?

python web-scraping python-requests web-crawler urllib
1个回答
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 页面中提取 sessionidcsrftoken

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

© www.soinside.com 2019 - 2024. All rights reserved.