国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【python】selenium模擬瀏覽器

2021-12-28 22:42 作者:阿提艾斯  | 我要投稿

1、模塊介紹

selenium最初是一個(gè)自動(dòng)化測(cè)試工具,不過(guò)爬蟲(chóng)也經(jīng)常使用該模塊,主要是為了解決requests庫(kù)無(wú)法直接獲取js代碼渲染的數(shù)據(jù)的問(wèn)題。

selenium本質(zhì)是通過(guò)驅(qū)動(dòng)瀏覽器,完全模擬瀏覽器的動(dòng)作,可以支持多種瀏覽器。

使用selenium獲取到的頁(yè)面是所見(jiàn)即所得的,就是說(shuō)不止后臺(tái)返回的數(shù)據(jù)能獲取到,通過(guò)js渲染的數(shù)據(jù)也會(huì)獲取到。

selenium的性能怎么樣呢?親自測(cè)試,訪問(wèn)一個(gè)鏈接40次(進(jìn)程池=6),快的時(shí)候需要30秒左右,慢的時(shí)候需要180秒左右。

2、模塊安裝

這兒給出了linux arm, linux x86_64, windows環(huán)境安裝步驟,按自己情況進(jìn)行安裝。

2.1 Linux? armv7l安裝

我使用的樹(shù)莓派測(cè)試的sulenium模塊

樹(shù)莓派類(lèi)型
pip3 install selenium==3.141.0
安裝selenium

2.1.2 chromium瀏覽器安裝

sudo apt-get install chromium-browser ? ?# 這樣安裝是最新的瀏覽器

2.1.3 chromium-chromedriver驅(qū)動(dòng)安裝

sudo apt-get install chromium-chromedriver ? ?# 這樣安裝是最新的驅(qū)動(dòng)

一般瀏覽器和驅(qū)動(dòng)安裝最新的版本都會(huì)對(duì)應(yīng)上,如下圖都是92版本:

瀏覽器版本和驅(qū)動(dòng)版本要保持一致

瀏覽器和瀏覽器驅(qū)動(dòng)版本一定要配套。比如,如果你用92版本的驅(qū)動(dòng)去啟動(dòng)86版本的瀏覽器,直接就會(huì)報(bào)錯(cuò)。如下圖所示:

版本不配套后面運(yùn)行selenium會(huì)報(bào)錯(cuò)


2.2 Linux x86_64安裝

2.2.1 chrome browser下載安裝

樹(shù)莓派系統(tǒng)架構(gòu)是基于arm的,而現(xiàn)在很多軟件都是基于x86_64的或者windows的,如果你的機(jī)器架構(gòu)是x86_64或者windows的,網(wǎng)上很容易找找到安裝chrome+chromedriver的教程。

安裝最新穩(wěn)定版本的chrome瀏覽器:

yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

或者

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install ./google-chrome-stable_current_x86_64.rpm

如果想安裝chrome歷史版本,從下方鏈接里找:

https://www.chromedownloads.net/chrome64linux-stable/

安裝好之后查看chrome browser版本

chrome --version

2.2.2 chromedriver驅(qū)動(dòng)下載安裝

下載后解壓會(huì)得到chromedirver二進(jìn)制文件,并添加a+x執(zhí)行權(quán)限,拷貝到/usr/local/bin或者/usr/bin目錄下

# 這兒注意下載驅(qū)動(dòng)版本,要和上面的瀏覽器版本保持一致
wget https://npm.taobao.org/mirrors/chromedriver/97.0.4692.36/chromedriver_linux64.zip
# 將zip解壓到當(dāng)前目錄chromedriver_linux64下
unzip -d ./chromedriver_linux64 chromedriver_linux64.zip
chmod a+x ./chromedriver_linux64/chromedriver
# 如果機(jī)器上本來(lái)就有驅(qū)動(dòng),備份下
if [ -f "/usr/local/bin/chromedriver" ]; then
 ? ?mv /usr/local/bin/chromedriver /usr/local/bin/chromedriver_old
fi
cp ./chromedriver_linux64/chromedriver /usr/local/bin

這兒附上兩個(gè)找不同版本驅(qū)動(dòng)的鏈接

官方下載鏈接:chromedriver.storage.googleapis.com/index.html

taobao下載鏈接: http://npm.taobao.org/mirrors/chromedriver


2.3 windows安裝

2.3.1 chrome browser下載安裝

https://www.chromedownloads.net/chrome64win/

2.3.2 chromdriver驅(qū)動(dòng)下載安裝

http://npm.taobao.org/mirrors/chromedriver

注意驅(qū)動(dòng)下載之后,要放到python安裝包的目錄下

把驅(qū)動(dòng)文件放在python安裝目錄下

3、模塊使用

舉一個(gè)例子:

from selenium import webdriver


if __name__ == "__main__":
 ? ?options = webdriver.ChromeOptions() ? ?# 實(shí)例化瀏覽器選項(xiàng)
 ? ?options.add_argument('--headless') ? ? ? # 添加無(wú)頭模式
 ? ?options.add_argument('ignore-certificate-errors') ? ?# 解決“您的鏈接不是私密鏈接”錯(cuò)誤
 ? ?driver = webdriver.Chrome(executable_path='/usr/lib/chromium-browser/chromedriver', options=options) ? ?# 啟動(dòng)chrome瀏覽器,executable_path指定的是驅(qū)動(dòng)路徑
 ? ?driver.get("http://www.baidu.com") ? ?# 訪問(wèn)百度首頁(yè)
 ? ?print(driver.page_source) ? ?# 獲取訪問(wèn)頁(yè)面的內(nèi)容
 ? ?driver.close() ? ?# 關(guān)閉瀏覽器

無(wú)頭模式:就是你不用可視化瀏覽器就可以訪問(wèn)url,不需要前臺(tái)展示。沒(méi)有頭嘛~


4、遇到的問(wèn)題

4.1 最常見(jiàn)的就是瀏覽器和驅(qū)動(dòng)版本不一致導(dǎo)致報(bào)錯(cuò),所以發(fā)生錯(cuò)誤的時(shí)候首先檢查自己下載的瀏覽器和驅(qū)動(dòng)版本。

4.2 在創(chuàng)建瀏覽器的時(shí)候,即webdriver.Chrome()這一步卡住了,不輸出任何東西,也不報(bào)錯(cuò)退出。

解決辦法:在/etc/hosts中添加一行:? 127.0.0.1 localhost。?

4.3 報(bào)錯(cuò):Message: Reached error page:about:neterror?e=proxyConnectFailure……

問(wèn)題原因:你訪問(wèn)的鏈接,瀏覽器打不開(kāi)。

解決辦法:檢查你的網(wǎng)絡(luò)是不是確實(shí)打不開(kāi)該網(wǎng)址。



以上知識(shí)如果理解有錯(cuò)誤,歡迎指出,共同學(xué)習(xí)。

【python】selenium模擬瀏覽器的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
四子王旗| 临沂市| 扶沟县| 德州市| 射洪县| 饶阳县| 乌拉特前旗| 白水县| 南宫市| 即墨市| 金乡县| 平阴县| 安福县| 沭阳县| 滦平县| 清远市| 阜阳市| 呼和浩特市| 阿荣旗| 安康市| 乐清市| 孟连| 昌都县| 南川市| 衡阳县| 武义县| 汉沽区| 怀集县| 青浦区| 龙里县| 襄城县| 邯郸县| 大新县| 长海县| 卢氏县| 特克斯县| 南宁市| 达尔| 定陶县| 类乌齐县| 天长市|