我想创建一个程序来抓取我的帐户读取多个网站的列表,并将它们添加到我的Safari
阅读列表中。但是,我无法使用普通链接进行抓取,因为它需要登录。
我如何通过这个?
答案 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]