2016-02-17 39 views
0

我想創建一個程序,它可以清除我的帳戶讀取多個網站的列表,並將它們添加到我的Safari閱讀列表中。但是,我不能只使用普通鏈接來抓取,因爲它需要登錄。如何使用網絡爬蟲/刮板登錄?

我該如何克服這個問題?

回答

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]