scrapy(五)接入selenium

反爬的一些情况

  1. 数据的不是返回的网页源代码
  2. 请求参数后返回的参数是经过加密的
  3. 一个页面的请求只能找到一次

selenium自动化测试工具,驱动浏览器的功能,会等待浏览器执行js代码完毕,再获取数据

常规获取加密数据的操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

selenium的使用

1.1 安装

pip install selenium -i https://pypi.doubanio.com/simple

1.2 安装驱动

谷歌浏览器
火狐浏览器
在这里插入图片描述
将下载得到的文件解压放入python目录,能够运行的exe文件
运行代码

from selenium import webdriver

# 打开浏览器
# diver = webdriver.firefox
driver = webdriver.Chrome()

# 打开指定的页面
driver.get('https://www.taobao.com')

在这里插入图片描述
模拟了用户操作的过程

1.3、实际操作

爬取内容,此时请求已经完成,需要自定义中间件

class AreaSpiderSpider(scrapy.Spider):
    name = 'area_spider'
    # allowed_domains = ['ddddd']
    start_urls = ['https://www.aqistudy.cn/historydata/daydata.php?city=%E6%88%90%E9%83%BD&month=201910']

    def parse(self, response):
        # 请求已经完成
        print(response.text)

自定义中间件
在这里插入图片描述
运行程序,得到网页源代码

1.4、无头浏览器

selenium很慢是因为会打开窗口

from selenium import webdriver
from selenium.webdriver.chrome.options import  Options

# 打开浏览器
options = Options()
options.add_argument('----headless')
driver = webdriver.Chrome(chrome_options=options)

# 打开指定的页面
driver.get('https://www.taobao.com')
print(driver.page_source)	# 打印网页源代码

此方法就不需要打开浏览器,能够节省内存

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值