使用python來刷csdn下載積分(二)

來源:互聯網
上載者:User

標籤:

使用python來刷csdn下載積分(一)中我們實現了csdn下載的自動評價,但是這樣只是評價自己下載過的資源,還不能實現刷分的目的。本次,我們將學習批量下載csdn的免費資源。

csdn自己是帶了資源的搜素工具的,網址: http://download.csdn.net/advanced_search, 裡面是可以搜尋指定資源積分的下載資源的。但是用起來非常不好用,總是搜尋不到想要的資源。

於是我們就棄之不用,使用百度來搜尋,搜尋的關鍵字是 "資源積分:0分"  聯通下載 pdf  site:download.csdn.net"

這樣能得到一大堆的免費資源

下一步就是解析出每個資源對應的url 去訪問並下載。

代碼如下:

 1 #coding=utf-8 2 import os,time 3 from splinter import Browser 4 from timeout import timeout 5  6  7 def login(username="[email protected]",passwd="dengdengdeng"): 8     """登入csdn""" 9     global browser10     url = "http://passport.csdn.net/account/login"11     browser.visit(url)12     # browser.fill(‘f‘, ‘splinter - python acceptance testing for web applications‘)13     # Find and click the ‘search‘ button14     btnEmail = browser.find_by_id(‘username‘)15     btnPasswd = browser.find_by_id(‘password‘)16     btnRemember = browser.find_by_name(‘rememberMe‘)17 18 19     btnEmail.fill(username)#使用者名稱20     btnPasswd.fill(passwd)#密碼21     btnRemember.check()#22     #print dir(browser)23     # Interact with elements24     btnSubmit = browser.find_by_value("登 錄")25     btnSubmit.click()#登入26     time.sleep(7)27     # button.click()28 29 @timeout(30)30 def download():31     global browser32 33     print "try to clcik"34     btnDownload = browser.find_by_css(r‘#wrap > div.bd.clearfix > div.article > div.information.mb-bg.clearfix > div.info > a.btn.btn-primary.btn-lg.WCDMA.btndownload‘)[0]35     btnDownload.click()36     time.sleep(4)37     btnDownload = browser.find_by_css(r‘#download_btn2‘)[0]38     btnDownload.click()39     # btnDownload = browser.find_by_xpath(r‘//*[@id="download_btn2"]‘)[0]40     # btnDownload.click()  41     time.sleep(3)42     # btnConfirm = browser.find_by_xpath(r‘//*[@id="user_score_btn"]‘)[0]43     # btnConfirm.click()44     # print "done"45 46         # try:47     btnConfirm = browser.find_by_xpath(r‘//*[@id="user_score_btn"]‘)[0]48     btnConfirm.click()49             # time.sleep(3)50             # print "done"51         # except:52             # print "error"  53 54 def searchFree():55     """用百度搜尋免費的資源,返回資源的列表"""56     global browser57     url = "http://www.baidu.com"58     browser.visit(url)59     btnKeyWord = browser.find_by_id(‘kw‘)[0]60     btnKeyWord.fill(u‘"資源積分:0分"  聯通下載 pdf  site:download.csdn.net‘)#密碼61     btnSubmit = browser.find_by_id("su")[0]62     btnSubmit.click()#提交搜素63 64     base = 065     time.sleep(4)    66     for page in range(1,90):        67         # timerThread = closeWindow(browser)68         # timerThread.start()69         print base," base"70         print page," page"71         for x in range(base+1,base+11):72             print x73             time.sleep(4)74             urlTmp = browser.find_by_xpath(‘//*[@id="%d"]/h3/a‘%x)[0]            75             urlTmp.click()76             browser.windows.current = browser.windows[1]77             browser.driver.set_window_size(800,1000)78             time.sleep(6)79             download()80             print "time out error"81             browser.windows.current = browser.windows[0]82             browser.windows.current.close_others() #關閉視窗            83         base = base + 10    84         nextPage = browser.find_link_by_text(u"下一頁>")[0] 85         nextPage.click()86 87 88 if __name__ == "__main__":89     browser = Browser(‘chrome‘)#90     login()91     searchFree()92     print "Hello Kitty"

代碼未經過整理,有些亂。

中間遇到的主要問題就是元素的載入。

有的時候由於網路狀況的不同,元素的載入時間也不一樣。所以中間會有很多sleep。而且csdn還使用了Google的網站統計功能,有的時候網頁載入時間就更加的長。網頁中的js指令碼有的時候不能執行,因為js指令碼的執行順序是比網頁的載入順序靠後的。

還有完善的空間,最後看下刷分的成果。

使用python來刷csdn下載積分(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.