python+selenium動態抓取網頁數據


window+python+selenium

1.下載selenium

cmd pip3 instatll selenium

2.下載瀏覽器對應驅動版本

查看瀏覽器版本:chrome://version

驅動下載國外連接:http://chromedriver.storage.googleapis.com/index.html

驅動下載國內鏡像連接(推薦):http://npm.taobao.org/mirrors/chromedriver/

 

把此驅動放在python安裝目錄,與phthon.exe同級

編寫代碼及代碼測試

from selenium import webdriver
'''
@Author: 馬家立
@Date: 2020/12/22 17:00
@Description: 延時抓取動態網頁數據
'''


print("開始爬取數據...")
option = webdriver.ChromeOptions()
# “no-sandbox”: 沙盒模式運行,以最高權限運行
option.add_argument('-no-sandbox')
# 大量渲染時候寫入/tmp而非/dev/shm
option.add_argument('-disable-dev-shm-usage')
# “headless”:不用打開圖形界面,若注釋則會打開瀏覽器
option.add_argument('-headless')
# 不加載圖片, 提升速度
option.add_argument('-blink-settings=imagesEnabled=false')
# 谷歌文檔提到需要加上這個屬性來規避bug
option.add_argument('-disable-gpu')
# 添加變量配置
browser = webdriver.Chrome(options=option)
# 訪問百度
browser.get('http://www.baidu.com/')
# 打印標題
print(browser.title)
# 關閉瀏覽器
browser.quit()

Ps:ChromeOptions詳情可見:https://www.jianshu.com/p/8ec70859ae03

Linux+python+selenium

1.下載selenium

pip3 instatll selenium

2.安裝chrome

Linux 命令安裝最新的 Google 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

 安裝必要的庫

yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts

3、安裝及配置 chromedriver

Linux命令查看谷歌瀏覽器版本 

google-chrome --version

 

Window下驅動下載:

驅動下載國外連接:http://chromedriver.storage.googleapis.com/index.html

驅動下載國內鏡像連接(推薦):http://npm.taobao.org/mirrors/chromedriver/

 將下載好的Linux下chrome對應驅動上傳至Linux服務器上

 

推薦放在/usr/bin 目錄下:

/usr/bin/chromedriver

 給予執行權限

chmod +x /usr/bin/chromedriver

配置環境變量

export PATH=$PATH:/usr/bin/chromedriver/

編寫代碼及代碼測試

import platform
from selenium import webdriver
'''
@Author: 馬家立
@Date: 2020/12/22 17:30
@Description: 延時抓取動態網頁數據
'''


print("開始爬取數據...")
option = webdriver.ChromeOptions()
# “no-sandbox”: 沙盒模式運行,以最高權限運行
option.add_argument('-no-sandbox')
# 大量渲染時候寫入/tmp而非/dev/shm
option.add_argument('-disable-dev-shm-usage')
# “headless”:不用打開圖形界面,若注釋則會打開瀏覽器
option.add_argument('-headless')
# 不加載圖片, 提升速度
option.add_argument('-blink-settings=imagesEnabled=false')
# 谷歌文檔提到需要加上這個屬性來規避bug
option.add_argument('-disable-gpu')
if platform.system().lower() == 'windows':
    print("windows")
    browser = webdriver.Chrome(options=option)
elif platform.system().lower() == 'linux':
    print("linux")
    # 指定驅動路徑
    browser = webdriver.Chrome("/usr/bin/chromedriver", options=option)
# 訪問百度
browser.get('http://www.baidu.com/')
# 打印標題
print(browser.title)
# 關閉瀏覽器
browser.quit()

Linux下命令測試

1.給予執行權限

chmod +x puBaiduLinux.py

 

2.運行爬蟲文件

python3 + 文件名

測試結果

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM