视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium
Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致,因此速度快与要打开界面的selenium,其使用方法和selenium一样。 1.配置要求
1.系统要求:
Chrome Unix\Linux 系统需要 chrome >= 59 Windows 系统需要 chrome >= 60Python3.6及以上Selenium==3.4及以上ChromeDriver==2.31及以上
2.配置代码
from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionschrome_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 = pathbrowser = webdriver.Chrome(options=chrome_options)
参考代码:
from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.common.by import Byimport timechrome_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 = pathbrowser = webdriver.Chrome(options=chrome_options)url = "https://www.baidu.com"browser.get(url)time.sleep(2)browser.get_screenshot_as_file("百度首页.png")# 获取文本框的对象input = browser.find_element(By.ID, "kw")# 在文本框中输入pythoninput.send_keys('python')time.sleep(2)# 获取百度一下的按钮button = browser.find_element(By.ID, 'su')# 点击按钮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("第一页截图.png")# 获取下一页的按钮next_button = browser.find_element(By.XPATH, '//a[@class="n"]')# 点击下一页next_button.click()time.sleep(2)browser.execute_script(js_bottom)browser.get_screenshot_as_file("下一页截图.png")time.sleep(2)# 返回到前一个历史记录 相当于 浏览器的返回按钮browser.back()time.sleep(2)# 返回到后一个历史记录相当于 浏览器的前进按钮browser.forward()browser.execute_script(js_bottom)time.sleep(2)# 退出browser.quit()