Python爬蟲增加CSDN瀏覽量

2021-09-24 20:14:11 字數 4008 閱讀 9908

用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...