內容:通過wget批量下載我自己博客園的隨筆頁面,看閱讀量是否增加環境:kali+python思路:1、在終端利用調用腳本的方式執行python腳本,比如:python add_readcounts.py -f my_blogs2、對爬蟲不熟,但是也不能把每一篇隨筆的鏈接加入到代碼中,使用一個文本保 ...
內容:通過wget批量下載我自己博客園的隨筆頁面,看閱讀量是否增加
環境:kali+python
思路:1、在終端利用調用腳本的方式執行python腳本,比如:python add_readcounts.py -f my_blogs
2、對爬蟲不熟,但是也不能把每一篇隨筆的鏈接加入到代碼中,使用一個文本保存,獲取一個file變數
3、通過python執行系統命令
1 import optparse 2 3 #get the file that user input, return the open file,通過終端輸入拿到文件名稱並且打開,返回一個file變數 4 def get_file(): 5 parser = optparse.OptionParser("usage %prog"+"-f <link_file>") # 運行腳本的格式 6 parser.add_option('-f', dest = 'fname',type = 'string', help = 'specify link file') # 添加運行腳本的變數 7 (options, args) = parser.parse_args() # 把終端獲取的變數進行保存,這裡不知道怎麼解釋,有點要意會 8 if options.fname == None: # 文件位置參數不正確,輸出使用方法,程式結束 9 print parser.usage 10 file_name = options.fname 11 #file_name = 'test' 12 f = open(file_name,'r') 13 return f 14 15 # execute the shell commands 執行命令,我測試了幾種方法 16 #import subprocess 17 import commands,os 18 def execute_shell(s): 19 #obj = subprocess.Popen('wget',shell=True,stdout=subprocess.PIPE) 20 #x = obj.stdout.read() 這是第一種方法,有點問題,因為不熟悉就沒有使用 21 shell_command = ' '.join(['wget','-O','x',s]) # 因為wget是下載網頁,所以我把每次的結果都寫到一個文件裡面,這樣不會生成很多網頁 22 #print(shell_command) 23 os.system(shell_command) # 通過系統執行命令 24 #print(commands.getstatusoutput(shell_command)) 25 #(status, result) = commands.getstatusoutput(shell_command) # 這種方法會阻塞,所以也不使用 26 #print(result) 27 28 29 30 import re 31 if __name__ == '__main__': 32 f = get_file() 33 run_num = 0 34 for s in f: 35 #s = re.sub(';','',s) 36 #print(s) 37 execute_shell(s) 38 run_num += 1 39 40 print 'the website is :',run_numView Code
忘記放我的文本文件上來了,現在補上
文件名:my_blogs
內容
http://www.cnblogs.com/-nbloser/p/7854170.html
http://www.cnblogs.com/-nbloser/p/7873562.html
http://www.cnblogs.com/-nbloser/p/7901274.html
http://www.cnblogs.com/-nbloser/p/7901295.html
http://www.cnblogs.com/-nbloser/p/7979969.html
。。。。。。
我多次運行過後發現,我win10點擊+虛擬機點擊都會增加1,再次點擊不會出現增加的數量,可能是記錄電腦的某個信息。所以這種刷的方式可能不是很實用。不過寫這個程式倒是蠻有意思的。