我想创建一个程序,该程序将抓取多个站点的帐户阅读列表,并将它们添加到我的Safari
阅读列表中。但是,我不能只使用普通链接进行爬行,因为它需要登录。
我该如何度过难关?
您可能正在使用 HTTP GET 消息来加载 HTML 页面。为了登录,带有正确凭据(用户名和密码)的HTTP POST消息将有所帮助。
以下是登录社交网站的HTTP POST消息示例:
post_message = ('POST /accounts/login/ / HTTP/1.1rn'
'Host: www.fakebook.comrn'
'Connection: keep-alivern'
'Content-length: ' + contentlength +'rn'
'Origin: http://'+host+'rn'
'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-urlencodedrn'
'Accept-Encoding: gzip, deflatern'
'Cookie: csrftoken='+csrftoken+'; sessionid= '+sessionid+'rrnn')
# Add POST body to header.
post_message += ('username='+username+'&password='+password+'&csrfmiddlewaretoken='+csrftoken+'&next=/fakebook/rnrn')
您必须从登录网站的HTML页面中提取sessionid和csrftoken。
有关 HTTP 状态代码的更多信息,请参阅: [http://www.jmarshall.com/easy/http/][1]