2014-09-25 32 views
0

我登錄到我的帳戶,如:保持登錄和使用Python請求模塊設置cookie的,做的東西

import os 
import requests 
from lxml import html 

def GetContent(url): 
    response = requests.get(url) 
    return response.content 

def Parser(content): 
    tree = html.fromstring(content) 
    return [e.text_content() for e in tree.xpath('//div[@class="group"]/div[@class="groupinfo"]/a')] 


def Func(): 
    try: 
     s = requests.Session() 
     email='user' 
     password='123456' 
     post_data={'email':email, 'password':password} 
     post_response=s.post(url='http://site.ir/signin/', data=post_data) 
     resultfile = open("result.txt", "w+") 
     page=1 
     while (page<=750): 
      print 
      print 'Checking page number: ', page 
      url2 = 'http://site.ir/' + str(page) 
      print "URL: " + url2 
      content = GetContent(url2) 
      results = Parser(content) 
      for i in results: 
       print i 
       resultfile.writelines(i+'\n') 
       resultfile.flush() 
      page += 1 
     resultfile.close() 
    except (KeyboardInterrupt, SystemExit): 
     print "\nKeyboardInterruption with Ctrl+c signal" 
     sys.exit(1) 

if __name__ == "__main__": 
    Func() 

我想留洛和做的東西。正如你在代碼中看到的那樣,我做了一個會話

當頁面正在增加時我希望保持登錄狀態並獲取下一頁的內容並執行其他操作,,,但它僅返回頁面編號爲1的內容而頁面正在增加。

回答

1

您忽略了您的會話GetContent;您正在提出請求,但沒有您的requests.Session對象跟蹤的Cookie。請使用s.get()

print "URL: " + url2 
content = s.get(url2).content 
results = Parser(content) 
+0

謝謝...錯誤'類型錯誤:預期字符串或buffer'出現 – MLSC 2014-09-25 18:27:18

+0

'打印content'的輸出是'<響應[200]>' – MLSC 2014-09-25 18:29:16

+0

你知不知道熱來解決它? – MLSC 2014-09-25 18:34:12