有时候在使用scrapy爬取一些数据时,需要进行登录和填写验证码的操作,需要使用selenium设置cookie和打码,就需要使用webdriver
pip install selenium
使用pycharm的可以在settings-> interceptor中进行安装。
有两个下载地址:
找到合适的版本进行安装。
下载windows版本:
3.解压并将chromedriver.exe放在chrome的安装目录下
4. 配置 有两种方式:
from selenium import webdriver
browser = webdriver.Chrome(chrome_options=options,executable_path='C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
另一种方式:
from selenium import webdriver
import os
os.environ["webdriver.chrome.driver"] = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
driver = webdriver.Chrome()
登录:
options = webdriver.ChromeOptions()
# 设置中文
options.add_argument('lang=zh_CN.UTF-8')
# 更换头部
options.add_argument('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36')
browser = webdriver.Chrome(chrome_options=options,executable_path='C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
wait = WebDriverWait(browser,10)
browser.get(self.login_url)
添加cookie:
browser.add_cookie({
'domain':cookie['domain'],
'httpOnly': cookie['httpOnly'],
'name':cookie['name'],
'path':cookie['path'],
'secure':cookie['secure'],
'value':cookie['value'],
'expiry':None if 'expiry' not in cookie else cookie['expiry']
})
设置代理浏览器:
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server='+proxy)
time.sleep(2)
browser = webdriver.Chrome(chrome_options=chrome_options)
wait = WebDriverWait(browser,15)
接下来就可以配合scrapy愉快地进行爬虫了。