用python寫乙個定時訪問csdn文章的指令碼,將其放在雲伺服器上,用screen
將該指令碼掛後台執行即可,過不了多久,你會發現你的部落格文章的閱讀量就會10000+。
python3開發環境,需要安裝 requests, 安裝命令:
pip install requests
, linux下請用 pip3
# coding=utf8
'''檔名: csnd.py
'''import sys
import os
import re
import requests
import time
import threading
import logging
from concurrent.futures import processpoolexecutor,threadpoolexecutor
ids =
[93797976
,93668952
,93602097
,85249743
,86671668
,94026503
]url =
''urls =
[url+
str(id)
forid
in ids]
head =
title = re.
compile
(r'(.*)'
)# 正則匹配文章標題
match1 = re.
compile
(r'閱讀數 (\d+)'
)# 正則匹配文章閱讀數
match2 = re.
compile
(r'訪問:\s*'
)# 正則匹配總訪問量
time =
60# 每個60秒訪問一次
logfile =
'log.txt'
# 日誌檔案
defgetloger()
: logger = logging.getlogger(
'log'
) logger.setlevel(logging.info)
formatter = logging.formatter(fmt=
"%(asctime)s %(name)s:%(levelname)s:%(message)s"
, datefmt=
"%y-%m-%d %h:%m:%s"
) fh = logging.filehandler(logfile,
'w', encoding=
'utf-8'
) fh.setlevel(logging.info)
fh.setformatter(formatter)
logger.addhandler(fh)
ch = logging.streamhandler(sys.stdout)
ch.setlevel(logging.info)
ch.setformatter(formatter)
logger.addhandler(ch)
return logger
defvisit_csdn
(url, lock, logger, cnt =
none):
response = requests.get(url, headers=head)
text = response.text
title = re.search(title, text)[1
].split(
' ')[0
] result1 = re.search(match1, text)
result2 = re.search(match2, text)
if cnt and lock.acquire(time)
:# lock.acquire() 申請鎖
infostr =
"成功訪問 次, 閱讀數: , 訪問量: --> {}"
.format
(cnt,
int(result1[1]
),int(result2[1]
),repr
(title)
) logger.info(infostr)
lock.release(
)# lock.release() 釋放鎖
time.sleep(time)
return text
defmain()
: cnt =
0 logger = getloger(
)with threadpoolexecutor(max_workers =
len(ids)
)as pool:
lock = threading.lock(
)while
true
: cnt +=
1for url in urls:
pool.submit(visit_csdn, url, lock, logger, cnt)
time.sleep(1)
if __name__ ==
'__main__'
: main(
)# test()
gnu screen是一款由gnu計畫開發的用於命令列終端切換的自由軟體。使用者可以通過該軟體同時連線多個本地或遠端的命令行會話,並在其間自由切換。gnu screen可以看作是視窗管理器的命令列介面版本。它提供了統一的管理多個會話的介面和相應的功能。
# 常用screen引數
screen -s name # 新建乙個叫 name 的session
screen -ls # 列出當前所有的session
screen -r name # 回到 name 這個session
screen -d name # 遠端detach某個session
screen -d -r yourname # 結束當前session並回到yourname這個session
exit
# 退出當前 session
# 快捷鍵
ctrl + a + c # 建立乙個新的執行shell的視窗並切換到該視窗
ctrl + a + d # deactive, 暫時離開當前session
ctrl + a + n # 切換到下乙個 window
ctrl + a + p # 切換到前乙個 window
ctrl + a + 0..9 # 切換到第 0..9 個 window
kill number # 強制殺死, 使會話變成 dead 狀態
screen -wipe # 刪除所有 dead 的會話。
# 先將檔案上傳至雲伺服器,具體上傳可以用 xftp
root@vultr:~/ubuntu/csdn刷流量# ll
-rw-r--r-- 1 root root 2334 jun 28 18:11 csdn.py
-rw-r--r-- 1 root root 34839 jun 28 19:01 log.txt
# 新建乙個 csdn 會話
root@vultr:~/ubuntu/csdn刷流量# screen -s csdn
# 用 python3 執行指令碼, 這裡得保證系統已經安裝python3環境和requests庫
root@vultr:~/ubuntu/csdn刷流量# python3 csdn.py
# 最後使用快捷鍵 ctrl + a + d 掛起會話
所有的輸出資訊都會儲存在 log.txt 檔案內,同時控制台也會有輸出,如圖:
大功告成!
Python爬蟲Csdn系列III
核心 在前兩篇文章已經提到了,難度也不是很大。coding utf 8 import sys import os import codecs import urllib import urllib2 import cookielib import mysqldb import re from bs4...
python 增加csdn訪問量公升級
主程式 tools是我的自定義工具類 import tools import socket 模擬訪問部落格增加訪問量 socket.setdefaulttimeout 1.0 visitnum 2 if len sys.argv 1 visitnum sys.argv 1 visitnum int ...
csdn部落格爬蟲更新
幾天沒上csdn部落格,不知道為什麼給我csdn首頁改了,不是以前的網頁布局了,所以之前寫的csdn部落格爬蟲也就宣告失效,所以今天修改了下之前寫的xpath爬蟲,正則爬蟲就沒改了,改的有點麻煩 coding gbk import sys import requests import re from...