2024 一天掌握python爬蟲(chóng)【基礎(chǔ)篇】 涵蓋 requests、beautifulsoup、selenium:
https://www.bilibili.com/video/BV1Ju4y1Y7k6/
Chrome-headless 模式, Google 針對(duì) Chrome 瀏覽器 59版 新增加的一種模式,可以讓你不打開(kāi)UI界面的情況下使用 Chrome 瀏覽器,所以運(yùn)行效果與 Chrome 保持完美一致,因此速度快與要打開(kāi)界面的selenium,其使用方法和selenium一樣。 1.配置要求
1.系統(tǒng)要求:
Chrome
Unix\Linux 系統(tǒng)需要 chrome >= 59
Windows 系統(tǒng)需要 chrome >= 60
Python3.6及以上
Selenium==3.4及以上
ChromeDriver==2.31及以上
2.配置代碼
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable‐gpu')
# 自己的Chrome瀏覽器文件路徑
path = r'C:\Users\java1234\AppData\Local\Google\Chrome\Application\chrome.exe'
chrome_options.binary_location = path
browser = webdriver.Chrome(options=chrome_options)
參考代碼:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable‐gpu')
# 自己的Chrome瀏覽器文件路徑
path = r'C:\Users\java1234\AppData\Local\Google\Chrome\Application\chrome.exe'
chrome_options.binary_location = path
browser = webdriver.Chrome(options=chrome_options)
url = "https://www.baidu.com"
browser.get(url)
time.sleep(2)
browser.get_screenshot_as_file("百度首頁(yè).png")
# 獲取文本框的對(duì)象
input = browser.find_element(By.ID, "kw")
# 在文本框中輸入python
input.send_keys('python')
time.sleep(2)
# 獲取百度一下的按鈕
button = browser.find_element(By.ID, 'su')
# 點(diǎn)擊按鈕
button.click()
time.sleep(2)
# 滑到底部
# js_bottom = 'window.scrollTo(0,document.body.scrollHeight)'
js_bottom = 'document.documentElement.scrollTop=10000'
js_top = 'document.documentElement.scrollTop=0'
browser.execute_script(js_bottom)
time.sleep(2)
browser.execute_script(js_top)
time.sleep(2)
browser.get_screenshot_as_file("第一頁(yè)截圖.png")
# 獲取下一頁(yè)的按鈕
next_button = browser.find_element(By.XPATH, '//a[@class="n"]')
# 點(diǎn)擊下一頁(yè)
next_button.click()
time.sleep(2)
browser.execute_script(js_bottom)
browser.get_screenshot_as_file("下一頁(yè)截圖.png")
time.sleep(2)
# 返回到前一個(gè)歷史記錄 相當(dāng)于 瀏覽器的返回按鈕
browser.back()
time.sleep(2)
# 返回到后一個(gè)歷史記錄 相當(dāng)于 瀏覽器的前進(jìn)按鈕
browser.forward()
browser.execute_script(js_bottom)
time.sleep(2)
# 退出
browser.quit()