scrapy-splash java,scrapy-splash简单使用详解

2023-10-26

1.scrapy_splash是scrapy的一个组件

scrapy_splash加载js数据基于Splash来实现的

Splash是一个Javascrapy渲染服务,它是一个实现HTTP API的轻量级浏览器,Splash是用Python和Lua语言实现的,基于Twisted和QT等模块构建

使用scrapy-splash最终拿到的response相当于是在浏览器全部渲染完成以后的网页源代码

2.scrapy_splash的作用

scrpay_splash能够模拟浏览器加载js,并返回js运行后的数据

3.scrapy_splash的环境安装

3.1 使用splash的docker镜像

docker info 查看docker信息

docker images  查看所有镜像

docker pull scrapinghub/splash  安装scrapinghub/splash

docker run -p 8050:8050 scrapinghub/splash &  指定8050端口运行

3.2.pip install scrapy-splash

3.3.scrapy 配置:

SPLASH_URL = 'http://localhost:8050'

DOWNLOADER_MIDDLEWARES = {

'scrapy_splash.SplashCookiesMiddleware': 723,

'scrapy_splash.SplashMiddleware': 725,

'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,

}

SPIDER_MIDDLEWARES = {

'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,

}

DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'

HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'

3.4.scrapy 使用

from scrapy_splash import SplashRequest

yield SplashRequest(self.start_urls[0], callback=self.parse, args={'wait': 0.5})

4.测试代码:

import datetime

import os

import scrapy

from scrapy_splash import SplashRequest

from ..settings import LOG_DIR

class SplashSpider(scrapy.Spider):

name = 'splash'

allowed_domains = ['biqugedu.com']

start_urls = ['http://www.biqugedu.com/0_25/']

custom_settings = {

'LOG_FILE': os.path.join(LOG_DIR, '%s_%s.log' % (name, datetime.date.today().strftime('%Y-%m-%d'))),

'LOG_LEVEL': 'INFO',

'CONCURRENT_REQUESTS': 8,

'AUTOTHROTTLE_ENABLED': True,

'AUTOTHROTTLE_TARGET_CONCURRENCY': 8,

'SPLASH_URL': 'http://localhost:8050',

'DOWNLOADER_MIDDLEWARES': {

'scrapy_splash.SplashCookiesMiddleware': 723,

'scrapy_splash.SplashMiddleware': 725,

'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810,

},

'SPIDER_MIDDLEWARES': {

'scrapy_splash.SplashDeduplicateArgsMiddleware': 100,

},

'DUPEFILTER_CLASS': 'scrapy_splash.SplashAwareDupeFilter',

'HTTPCACHE_STORAGE': 'scrapy_splash.SplashAwareFSCacheStorage',

}

def start_requests(self):

yield SplashRequest(self.start_urls[0], callback=self.parse, args={'wait': 0.5})

def parse(self, response):

"""

:param response:

:return:

"""

response_str = response.body.decode('utf-8', 'ignore')

self.logger.info(response_str)

self.logger.info(response_str.find('http://www.biqugedu.com/files/article/image/0/25/25s.jpg'))

scrapy-splash接收到js请求:

ae2c703608eb4699e3e73c6e3f1e08ae.png

到此这篇关于scrapy-splash简单使用详解的文章就介绍到这了,更多相关scrapy-splash 使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scrapy-splash java,scrapy-splash简单使用详解 的相关文章

  • 从0开始学PyTorch(一):线性回归、Softmax与分类模型、多层感知机

    文章目录 线性回归 模型 数据集 损失函数 优化函数 随机梯度下降 Softmax与分类感知机 softmax的基本概念 多层感知机 多层感知机的基本知识 隐藏层 表达公式 激活函数 线性回归 线性回归的基本要素 模型 为了简单起见 这里我
  • java文件下载接口,含泪整理面经

    Java如何入门 1 建立好开发环境 首先建立好开发环境非常重要 工欲善其事 必先利其器 做任何开发 首先就是要把这个环境准备好 之后就可以去做各种尝试 尝试过程中就能逐渐建立信心 初学者往往在环境配置中被各种预想不到的问题弄得很沮丧 这里
  • Python工业项目实战 04:数仓维度层DWS层构建

    知识点01 课程回顾 ODS层与DWD层的功能与区别是什么 ODS 原始数据层 存储格式 AVRO 数据内容 基本与原始数据是一致的 DWD 明细数据层 存储格式 Orc 数据内容 基于与ODS层是一致的 ODS层的需求是什么 自动化建库建
  • php怎么判断密码是否达标,php中简单的密码强中弱判断,php密码验证规则

    密码种类 1 小写字母 2 大写字母 3 数字 4 特殊符号 弱 1 中 2 强 3 或 4 长度 6 16个字符 区分大小写 1 长度判断 pwd len strlen password if pwd len gt 16 pwd len
  • 【华为OD机试】仿 LISP 运算【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 LISP 语言唯一的语法就是括号要配对 形如 OP P1 P2 括号内元素由单个空格分割 其中第一个元素 OP 为操作符 后续元素均为其参数 参数个数取决于操作符类型
  • 百度语音合成精简版

    我参照文档合成的源码下载 https download csdn net download qq 31939617 10388588 下载 文档 Android TTS SDK 集成进入helloworld 项目 一 简介 本文针对遇见集成
  • io流读写文件(文件内容修改)

    package cn sos psasps import java io BufferedReader import java io BufferedWriter import java io FileReader import java
  • Git第十三讲 Git重置和回滚更改

    在使用Git时 我们有时可能会犯错或者需要撤销之前的提交或更改 Git提供了一些强大的命令来重置和回滚更改 帮助我们管理项目的版本控制 本文将介绍如何使用Git进行重置和回滚操作 重置到指定提交 重置 Reset 命令允许我们将分支的指针移
  • tar 打包压缩命令

    tar 命令用于文件的打包或压缩 是最为常用的打包压缩命令 其语法格式如下 tar 选项 文件名 tar gz 源文件 tar czvf xxx tar gz source file tar czvf 包名 tar gz 源文件 以tar
  • 【以太坊系列-005】使用solc编译solidity智能合约,并生产web3deploy格式的代码

    说明 本文主要介绍 只通过solc来进行智能合约的部署 更简单的方式是通过remix直接生成 该场景是用于用户自己修改了solc编译器 remix无法使用的情况 1 代码结构 cat counter sol pragma solidity
  • SPP连接流程

    1 SDP服务注册 Server Channel即RFCOMM Server Channel 表示上层profile的rfcomm channel Central设备会使用SDP查询SPP的Server Channel 在后面使用RFCOM
  • C++ — 类型萃取

    类型萃取 在编程中我们可能时常会听到类型萃取这个高大上的 学术名词 我们今天来探究一下这个高大上的学术名词 到底是何方神圣 先看看官方的解释类型萃取使用模板技术来萃取类型 包含自定义类型和内置类型 的某些特 性 用以判断该类型是否含有某些特
  • Coinbase 研究:Web3 开发者堆栈指南

    原文标题 A simple guide to the web3 developer stack 撰文 Jonathan King Connor Dempsey Hoolie Tejwani 编译 胡韬 链捕手 尽管比特币和以太坊的兴起 以及
  • 电力识读图解(电力系统、电力网、电力系统电路图)

    一 电力系统和电力网 世界上大部分国家的动力资源和电力负荷中心分布是不一致的 如水力资源都是集中在江河流域水位落差较大的地方 燃料资源集中在煤 石油 天燃气的矿区 大电力负荷中心则多集中在工业区和大城市 因而发电厂和负荷中心往往相隔很远的距
  • 岁月划过生命线(2016 年终总结 -季度之星)

    岁月划过生命线 2016 年终总结 季度之星 标签 coder 年假结束 明天就要回到杭州 回到我fighting的战场 回首过去的2016 放纵了许多 但也收获了很多 n个项目 n个框架 第一个季度之星 头像第一次登上CSDN以及第一个年
  • 【C++笔记】OpenCV图像Mat格式转换为QT中QImage并显示zai Qlabel上

    Mat rgb QImage imgGray img if imgGray channels 1 imgGray img QImage const unsigned char imgGray data imgGray cols imgGra
  • 蓝桥杯官网练习题(兰顿蚂蚁)

    题目描述 兰顿蚂蚁 是于 1986 年 由克里斯 兰顿提出来的 属于细胞自动机的一种 平面上的正方形格子被填上黑色或白色 在其中一格正方形内有一只 蚂蚁 蚂蚁的头部朝向为 上下左右其中一方 蚂蚁的移动规则十分简单 若蚂蚁在黑格 右转 90
  • 标准时间格式转unix时间戳格式,误差8小时问题常见原因剖析

    标准时间格式即人一眼就能看懂的时间格式 比如 2017 11 28 15 00 00 unix时间戳格式 就是从1970年1月1日0点0分0秒 UTC GMT的午夜 开始计时 所经过的秒数 前端工作中有一次遇到需要从数据库中取出标准格式时间
  • 51单片机的智能温室大棚控制系统【proteus仿真+程序+报告+原理图】

    1 主要功能 该系统由AT89C51单片机 LCD1602模块 DS18B20温度传感器模块 DS1302时间模块 继电器驱动模块 电位器模块构成 本方案适用于智能温室大棚 蔬菜大棚等各类设计中 版本一 1 DS18B20温度传感器检测大棚

随机推荐

  • linux服务器结合宝塔搭建Gitlab服务器完整过程

    不想被束缚 公司总是不给我gitlab管理员账号 我自己搭建一个去 又不是没有服务器的人 哼 1 宝塔安装GitLab服务器 根据自己的内存选择不用的版本安装 2 宝塔开发端口如 8099 这个是我的Gitlab服务器的端口 如果有防火墙那
  • 虚拟化技术原理(CPU、内存、IO)

    本文来自 http www ywnds com p 5856 虚拟化 云计算现在已经非常成熟了 而虚拟化是构建云计算基础架构不可或缺的关键技术之一 云计算的云端系统 其实质上就是一个大型的分布式系统 虚拟化通过在一个物理平台上虚拟出更多的虚
  • 简单明了实现Java地图小程序项目

    简单明了实现Java地图小程序项目 博主介绍 前言 地图概述 地图技术 地图应用场景 网约车服务 智能穿戴 智能物流 智能景区 车联网 国内常见地图 地图API与搜索 JS API GL 演示百度地图 创建浏览器端应用 创建地图 添加控件
  • NGUI的一个bug解决:Thetype or namespace name `UnityEditor‘ could not be found.

    BUG Thetype or namespace name UnityEditor could not be found Are you missing ausing directive or an assembly reference 解
  • 计算机网络必会:TCP和UDP,面向连接,无连接,可靠与不可靠

    文章目录 导论 面向连接可靠的服务 TCP 无连接 不可靠的服务 UDP 导论 我在学习计算机网络的过程中 遇到了TCP和UDP解释 其中 无连接 面向连接 对我有很多新启发 下面就简单来聊聊 有兴趣多点个赞收藏一下 有错误可以私信反馈 欢
  • 用C语言写一个简单的贪吃蛇游戏(用到easyx图形库)

    学习内容 1 游戏的存储与读写 2 制作游戏菜单 3 制作定时器 目录 一 需要用到的头文件 全局变量和一些函数 二 定时器 三 数据的初始化和绘制 四 蛇的运行和吃食物 五 游戏菜单界面 六 游戏存储与读写 七 其他函数 八 主函数入口
  • Letters CodeForces - 978C(水题,low_bound()函数使用)

    水题 记录一下low bound begin end num 其中low bound是指以num为下界 寻找第一个比num大或相等的元素的指针 通过减去 begin指针我们可以获得相应的下标 upper bound first last v
  • p51 thinkpad 拆解_ThinkPad P51s固态硬盘加装指南(含拆机图)

    原标题 ThinkPad P51s固态硬盘加装指南 含拆机图 ThinkPad P51s是一款定位功能强大 机身轻薄的移动工作站 在19 9mm的机身中承载着酷睿i7 专业图形显卡 32G大内存 固态 机械双硬盘等专属强大性能 但是强大的性
  • webpack自动化打包webpack-dev-server

    在前面的章节中我们每次改完要打包的资源文件 和配置文件都是是输入npx webpack命令手动打包的 那么有没有什么办法可以监听到我们代码的改动 在保存时就自动打包呢 答案是当然有 不然哪些框架的脚手架是怎么实现保存自动打包的呢 这就是本章
  • Ubuntu重现IBM-Blockchain/marbles的Demo

    IBM Blockchain marbles Github网址 之前看书marbles是被翻译成大理石 不过也有翻译成弹珠的 自己理解就可以了 都是资产 现在我们开始重现这个官方的Demo 搭建Fabric的开发环境 搭建的环境至少是1 0
  • msfconsole常用搜索命令search

    msfconsole启动msf控制台后 msfconsole 2 dBBBBBBb dBBBP dBBBBBBP dBBBBBb o dB BBP dB dB dB dBBP dBP dBP BB dB dB dB dBP dBP dBP
  • opencvsharp 为什么降低图像的分辨率_【干货】图像质量与图像分辨率的关系

    在谈论图像质量时 我们都会提到分辨率 分辨率当然是指以像素 图像元素 为单位测量的图像的大小 当您将图像分辨率的宽度和高度相乘时 它将给出图像的总像素数 而质量是指图像中存储在像素中的细节内容 如颜色 阴影 对比度等 有些说法是 更高的分辨
  • Ubuntu 16.04纯文本界面、图形化界面切换方法

    一 图形化界面与纯文本界面的动态切换方法 Ubuntu 16 04系统默认以图形化界面方式启动 进入图形化界面后 若要切换到纯文本界面 一般可以按 Ctrl Alt F1 或F2 F6 快捷键 在文本终端中输入用户名 密码后登录即可 如下图
  • Python报“TypeError: a bytes-like object is required, not ‘str’ ”解决办法

    import os sys 打开文件 fd os open foo txt os O RDWR os O CREAT str this is fujieace com test str str encode 添加转换方法 encode 即可
  • 【技巧】pycharm中Debug过程中跳过for/while循环

    先在for while循环结束后的一句打上断点即可 再找到左侧绿色按钮
  • kali之MS08-067漏洞复现

    MS08 067漏洞复现 漏洞简介 MicrosoftWindows是美国微软 Microsoft 公司发布的一系列操作系统 Windows的Server服务在处理特制RPC请求时存在缓冲区溢出漏洞 远程攻击者可以通过发送恶意的RPC请求触
  • java中设计模式之装饰模式(结构型模式)

    什么是装饰模式 装饰模式 Decorator Pattern 是一种结构型设计模式 它允许你在不改变已有对象结构的情况下 动态地向对象添加新的功能 装饰模式利用组合和继承的方式 通过创建包装对象来包裹原始对象 以增强其功能 这样可以在不修改
  • - 模块“VPMC“启动失败,未能启动虚拟机?

    模块 VPMC 启动失败 未能启动虚拟机 原因 该主机的CPU类型问题 它不支持虚拟化性能计数器 可通过右击虚拟机 打开设置进行处理 解决方法 右击虚拟机 设置 选择处理器 虚拟化引擎中的三个框全部去 重启虚拟机 也有可能是没有开启主机虚拟
  • linux centos7清除系统日志、历史记录、登录信息

    平时不管是web还是系统产生的日志都可能导致洗盘爆满 所以我在这里分享一些基本常用清理linux日志的方法 echo gt var log wtmp 清除用户登录记录 echo gt var log btmp 清除尝试登录记录 echo g
  • scrapy-splash java,scrapy-splash简单使用详解

    1 scrapy splash是scrapy的一个组件 scrapy splash加载js数据基于Splash来实现的 Splash是一个Javascrapy渲染服务 它是一个实现HTTP API的轻量级浏览器 Splash是用Python