前言:
Python真的是厲害,但是你知道麼?Python+Selenium可以讓你在編程過程中更加有趣…
有一個技術咖網站叫做CSND,大家都知道如果想提高自己的排名那麼你需要有訪問量,那就意味著得有很多人來觀看你的文章,訪問量從何而來???
請君放心,你擔心的問題由Jetuser為你解決,自己那麼今天教大家如何利用Selenium加上強大的Python來增加CSND訪問量!當然了,在此之前你必須安裝好Chrome+Python(Anaconda3)+Selenium若沒有裝的Selenium小夥伴請看:
安裝哪些事兒----朱哥教你正確安裝Selenium:https://blog.csdn.net/L1542334210/article/details/101394359
1、增加訪問量的原理:
在CSND中,當我們點擊任意一篇文章閱讀後,再退出,然後刷新頁面,就會增加一次訪問量,但是對同一篇文章不能連續點擊多次,所以我們需要隨機選擇你的文章以保證訪問量可不停增加。我們就是利用selenium 控制模擬瀏覽器,寫入循環多次隨機點擊文章–退出–再隨機點擊文章–再退出…如此重複不斷達到增加訪問量的目的(注意:刷該訪問量一次不宜過多,以免被系統檢查到!博主還沒有被封號喲~~趕緊溜,反爬蟲的人來了! )。
2、代碼解析與過程部分:
話不多說,直接上代碼:
2.1:導入需要的庫備用
<code>import selenium #導入selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import random #導入隨機數庫,用於隨機選取文章/<code>
2.2:打開我們需要增加訪問量的CSND主頁面
<code>browser = webdriver.Chrome() #打開模擬瀏覽器
login_url = "https://blog.csdn.net/L2542334210" #"L2542334210"是你的CSND的ID號,此處是例子,打不開的,請換你的主頁鏈接!
browser.get(login_url)#打開CSND頁面/<code>
2.3:尋找所有文章位置:此處有一難題,我們需要找到文章的標籤所在處,對文章位置(如圖中第一個紅色框)右擊鼠標進行"檢索",發現如下圖示:
於是可知,該鏈接所在的標籤位置就是我們需要找的,於是:
<code>browser.find_elements_by_tag_name('h4')
#這時候會返回你所有文章的不同位置,由於我們需要
#模擬瀏覽器隨機點擊這些文章,所以對h4返回的內容作隨機選取
# ***該塊代碼塊不需要,此處舉例子而已***/<code>
將找到的所有文章位置對應放入在列表select中:
<code>select=[] #設置一個空列表
for i in range(len(browser.find_elements_by_tag_name('h4'))):
select.append(i) #將所有文章位置放入一個列表/<code>
2.4:隨機選取一篇文章,進行"閱讀":
<code>browser.find_elements_by_tag_name('h4')[random.choice(select)].click() #random.choice隨機選擇一篇文章打開/<code>
2.5:跳轉新窗口:由於此時打開兩個窗口,selenium還紀錄的是前一個窗口,所以必須跳轉到當前新打開的窗口:
<code>handles=browser.window_handles # 獲取當前所有窗口
browser.switch_to.window(handles[1]) # 切換到新的窗口
time.sleep(5) #延遲5秒,讓文章內容被讀取刷新完整
browser.close() #關閉當前新窗口
#此時已經模擬人閱讀文章完畢!返回刷新,發現自己訪問量+1/<code>
2.6:跳轉主頁窗口:即使關閉掉新的窗口,由於之前selenium還紀錄是的新的窗口,所以必須重新跳轉到主頁窗口才可以繼續‘閱讀’文章:
<code>browser.switch_to.window(handles[0]) #返回博客主頁面
#到此瀏覽量已經完成+1,只需要重複4-6步就可以增加訪問量啦~
#此時只需要封裝函數就可以刷訪多次問量啦~/<code>
3、主函數的封裝:
函數的封裝:
<code>######################################操作CSND博客,增加訪問量
def ADD_CSND_Browse_volume(ID,Browse_size):
'''該函數用於增加CSND瀏覽量!參數說明:
ID:你的CSND的ID號:--字符型--
Browse_size:想要增加多少瀏覽量:--int--
'''
from selenium import webdriver #導入庫
from selenium.webdriver.common.by import By
import time
import random
time.sleep(3) #延遲3秒
browser = webdriver.Chrome()
time.sleep(6) #延遲3秒
login_url = "https://blog.csdn.net/"+ID
browser.get(login_url)#打開網頁
time.sleep(3) #延遲3秒
select=[]
for i in range(len(browser.find_elements_by_tag_name('h4'))):
select.append(i)
i=0
while i<browse> browser.find_elements_by_tag_name('h4')[random.choice(select)].click() #定位到第幾篇文章
time.sleep(8) #延遲8秒
handles=browser.window_handles # 獲取當前所有窗口
browser.switch_to.window(handles[1]) # 切換窗口
time.sleep(5) #延遲5秒
browser.close() #關閉當前窗口
time.sleep(6) #延遲6秒
i=i+1
browser.close() #關閉舊窗口,當次數完成後自動關閉瀏覽器
#函數調用
ADD_CSND_Browse_volume('L2542334210',3) #此處是例子 刷3個瀏覽量/<browse>/<code>
4、總結:
selenium爬蟲固然好玩,但是缺點就是太耗時,它在每執行一步都需要等待網頁前端渲染完成,才能操作,所以效率不是很高,但有時候是網絡不好也是其中一大原因,如果不是涉及到點擊才增加瀏覽量,個人建議使用request請求會高效許多,也大大節約了時間!
閱讀更多 地表嘴強程序員 的文章