Scrapy Selenium实战:Selenium登录知乎保存cookies后访问需要登录页面
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。
selenium可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。
安装
#进入虚拟目录
cd /data/code/python/venv/venv_Scrapy/tutorial
#升级安装
../bin/pip3 install -U selenium
chromedriver
我们这里用 Chrome 浏览器来做自动化,我自己本身Chrome版本是
所以我们对应到 http://chromedriver.storage.googleapis.com/index.html 网址下载对应版本的chromedriver
新建爬虫
#进入虚拟目录
cd /data/code/python/venv/venv_Scrapy/tutorial
#新建爬虫
../bin/python3 ../bin/scrapy genspider -t basic zhihu www.zhihu.com
这里我们可以把下载下来的chromedriver放在/data/code/python/venv/venv_Scrapy/tutorial目录下
zhihu.py
# -*- coding: utf-8 -*-
import scrapy
import json
from selenium import webdriver
import time
from pathlib import Path
class ZhihuSpider(scrapy.Spider):
name = 'zhihu'
allowed_domains = ['www.zhihu.com']
start_urls = ['http://www.zhihu.com/']
# 模拟请求的headers,非常重要,不设置也可能知乎不让你访问请求
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36"