python爬蟲之selenium,谷歌無頭瀏覽器


python爬蟲之selenium和PhantomJS
主要的內容

​ selenium

​ phantomjs

谷歌無頭瀏覽器

​ 圖片的懶加載

一 什么是selenium?
介紹

它是python中的一個第三方庫,對外提供的接口可以操作瀏覽器,然后讓瀏覽器完成自動化的操作。

安裝
pip install selenium

!!!這里需要注意的是:要是安裝了還是無法使用這個模塊

1551530870409

報這個錯誤的時候,那么步驟如下

1 進入到Anaconda Navigator這個軟件

1551530916994

2 進入之后,點擊base中的第一個 進入終端

1551531124315

3 進入該界面,在進行下載pip install selenium

1551531223593

4 在次去使用 就不會報錯啦!!!!

如何使用selenium 進行操作呢?

1 獲取某一款瀏覽器的驅動程序(這里我以谷歌瀏覽器為例)

​ 谷歌瀏覽器的驅動下載地址:

http://chromedriver.storage.googleapis.com/index.html

2 如何選擇版本號下載,這里下載的驅動程序必須和瀏覽器的版本統一,可以通過這個網址中提供的版本映射表進行對應

先查看自己谷歌瀏覽器中的版本信息,然后通過映射表進行相應的下載即可

http://blog.csdn.net/huilan_same/article/details/51896672

需求 使用selenium打開百度

from selenium import webdriver
from time import sleep
#驅動路徑 記得前面加r 防止字符轉義
#!!!注意這里必須把驅動程序中的路徑寫完整,后面必須加上這個chromedriver.exe  否則會報錯 執行不成功
driver = webdriver.Chrome('C:\pacong_data\day3\chromedriver.exe')
#用driver打開百度頁面  后面的地址是百度的地址
driver.get('http://www.baidu.com')
# 查找頁面的“設置”選項,發送一個你要搜索的值,並進行點擊
driver.find_element_by_id('kw').send_keys('人民幣')
sleep(2)
#並進行點擊
driver.find_element_by_id('su').click()
sleep(2)
#退出驅動程序
driver.quit()



#使用下面的方法,查找指定的元素進行操作即可
    find_element_by_id            根據id找節點
    find_elements_by_name         根據name找
    find_elements_by_xpath        根據xpath查找
    find_elements_by_tag_name     根據標簽名找
    find_elements_by_class_name   根據class名字查找
二 phantomjs

PhantomJS是一款無界面的瀏覽器,其操作與上述的操作基本上是一致的,由於無界面,為了我們能夠清楚的看到她的自動化操作流程,它為用戶提供了一個截屏的功能,使用save_screenshot函數實現。

phantomjs實現無界面的操作
from selenium import webdriver
import time

#PhantomJS是一個無頭界面的瀏覽器
#!!!!注意這里的路徑是PhantomJS存放的路徑
browser = webdriver.PhantomJS(r'C:\pacong_data\day3\phantomjs-2.1.1-windows\bin\phantomjs.exe')

url ='http://www.baidu.com/'
browser.get(url)
time.sleep(3)

#進入百度界面    然后截屏
browser.save_screenshot(r'phantomjs\baidu.png')


bd_input = browser.find_element_by_id('kw').send_keys('小豬配齊')
#在此截屏
browser.save_screenshot(r'phantomjs\xiaozhu.png')
time.sleep(3)

bd_sous = browser.find_element_by_id('su').click()
在此截屏
browser.save_screenshot(r'phantomjs\sous.png')
time.sleep(3)

browser.quit()
谷歌無頭瀏覽器(是一款無界面的瀏覽器)
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

#這個是一個用來控制chrome以無界面模式打開的瀏覽器
#創建一個參數對象,用來控制chrome以無界面的方式打開
chrome_options = Options()
#后面的兩個是固定寫法 必須這么寫
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

#驅動路徑 谷歌的驅動存放路徑
path = r'C:\pacong_data\day3\chromedriver.exe'

#創建瀏覽器對象

browser = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)

url ='http://www.baidu.com/'

browser.get(url)
time.sleep(3)
browser.save_screenshot('baid.png')

browser.quit()


免責聲明!

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



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