作者:Chancel, 更新:2019 Mar 01, 字数:3319, 已阅:666
演示如何在Windows/CentOS下安装跟使用ChromeDriver进行爬虫抓取,例子所用代码为Python
Windows
Linux
配置Yum源
cd /ect/yum.repos.d/
vim google-chrome.repo
写入下面内容
[google-chrome] name=google-chrome baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch enabled=1 gpgcheck=1 gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub ```
安装Google Chrome浏览器(安装完成记得看版本号)
yum -y install google-chrome-stable --nogpgcheck
安装selenium、json、requests
pip install selenium json requests
# -*- coding:utf-8 -*-
# 导入webdriver
from selenium import webdriver
import json
import os
import requests
import time
from flask import Flask
# 要想调用键盘按键操作需要引入keys包
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
def get_cookies():
# Linux下创建ChromeOptions
print('正在创建Chrome实例')
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("window-size=1024,768")
chrome_options.add_argument("--no-sandbox")
# 无界面模式
driver = webdriver.Chrome(chrome_options=chrome_options)
# Windows下有界面模式
# driver = webdriver.Chrome()
# 如找不到则需指定ChromeDriver的位置(2019年2月21日 -- 即使指定也会出错,将ChromeDriver放到目录下可解决)
# driver = webdriver.PhantomJS(executable_path = "./phantomjs")
# get方法会一直等到页面加载,然后才会继续程序,通常测试会在这里选择time.sleep(2)
print('正在访问https://www.baidu.com/,并尝试登录')
try:
driver.get("https://www.baidu.com/")
# 如获取参数有误,则可以使用这个方法来测试看加载页面是否正确
# print(driver.page_source)
# 输入用户名
data = driver.find_element_by_id('TANGRAM__PSP_10__userName').send_keys('username')
# 输入密码
data = driver.find_element_by_id('TANGRAM__PSP_10__password').send_keys('passwd')
# 勾选记住我
data = driver.find_element_by_id('TANGRAM__PSP_10__memberPass').send_keys(Keys.SPACE)
# 尝试登录用户
data = driver.find_element_by_id('TANGRAM__PSP_10__submit').click()
print('正在尝试登录')
time.sleep(2)
# 打印Cookie
except:
print('网页登录请求失败,请检查网络状态')
return False
cookies = driver.get_cookies()
print(cookies)
# 退出浏览器
driver.quit()
print('浏览器已退出')
return True
if __name__ == '__main__':
get_cookies()