Python爬虫:splash的安装与简单示例

简介: Python爬虫:splash的安装与简单示例

安装splash

1、安装docker(参考:mac安装docker)

2、安装splash


docker pull scrapinghub/splash  # 安装
docker run -p 8050:8050 scrapinghub/splash  # 运行

访问测试: http://localhost:8050/

image.png


代码示例

import requests
import time
from scrapy import Selector
def timer(func):
    def inner(*args):
        start = time.time()
        response = func(*args)
        print("time: %s" % (time.time() - start))
        return response
    return inner
@timer
def use_request(url):
     return requests.get(url)
@timer
def use_splash(url):
    splash_url = "http://localhost:8050/render.html"
    args = {
        "url": url,
        "timeout": 5,
        "image": 0
    }
    return requests.get(splash_url, params=args)
if __name__ == '__main__':
    url = "http://quotes.toscrape.com/js/"
    r1 = use_request(url)
    sel1 = Selector(r1)
    text = sel1.css(".quote .text::text").extract_first()
    print(text)
    r2 = use_splash(url)
    sel2 = Selector(r2)
    text = sel2.css(".quote .text::text").extract_first()
    print(text)
"""
time: 0.632809877396
None
time: 0.685022830963
“The world as we have created it is a process of our thinking. 
    It cannot be changed without changing our thinking.”
"""

通过测试,发现需要splash对网页进行了渲染,获取到了数据,而且速度还很快


args参数说明:

url: 需要渲染的页面地址

timeout: 超时时间

proxy:代理

wait:等待渲染时间

images: 是否下载,默认1(下载)

js_source: 渲染页面前执行的js代码

相关文章
|
6天前
|
Linux 数据库管理 Python
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
65 4
|
21小时前
|
计算机视觉 Python
python 安装 cv2 - 已解决
python 安装 cv2 - 已解决
8 0
|
4天前
|
数据采集 存储 中间件
Scrapy,作为一款强大的Python网络爬虫框架,凭借其高效、灵活、易扩展的特性,深受开发者的喜爱
【6月更文挑战第10天】Scrapy是Python的高效爬虫框架,以其异步处理、多线程及中间件机制提升爬取效率。它提供丰富组件和API,支持灵活的数据抓取、清洗、存储,可扩展到各种数据库。通过自定义组件,Scrapy能适应动态网页和应对反爬策略,同时与数据分析库集成进行复杂分析。但需注意遵守法律法规和道德规范,以合法合规的方式进行爬虫开发。随着技术发展,Scrapy在数据收集领域将持续发挥关键作用。
30 4
|
7天前
|
数据采集 存储 Web App开发
Python爬虫实战:从入门到精通
Python是开发网络爬虫的首选语言,因其简洁语法和丰富库如requests, BeautifulSoup, Scrapy。爬虫涉及HTTP交互、HTML解析及法律道德问题。以下是爬取豆瓣电影Top250的步骤:确定目标,分析网站,安装必要库(requests, BeautifulSoup),编写代码抓取电影名称、评分和简介,处理异常并优化,如设置请求间隔、使用代理IP和遵循Robots协议。
|
7天前
|
存储 NoSQL MongoDB
深入解析 MongoDB 与 Python:基本语法、实用示例与最佳实践
深入解析 MongoDB 与 Python:基本语法、实用示例与最佳实践
|
8天前
|
Linux Python
Linux安装python3环境
Linux安装python3环境
|
9天前
|
机器学习/深度学习 存储 数据挖掘
看见更大的Python世界:Python生态系统中的第三方库的安装
看见更大的Python世界:Python生态系统中的第三方库的安装
19 1
|
16天前
|
数据采集 存储 中间件
Python高效爬虫——scrapy介绍与使用
Scrapy是一个快速且高效的网页抓取框架,用于抓取网站并从中提取结构化数据。它可用于多种用途,从数据挖掘到监控和自动化测试。 相比于自己通过requests等模块开发爬虫,scrapy能极大的提高开发效率,包括且不限于以下原因: 1. 它是一个异步框架,并且能通过配置调节并发量,还可以针对域名或ip进行精准控制 2. 内置了xpath等提取器,方便提取结构化数据 3. 有爬虫中间件和下载中间件,可以轻松地添加、修改或删除请求和响应的处理逻辑,从而增强了框架的可扩展性 4. 通过管道方式存储数据,更加方便快捷的开发各种数据储存方式
|
30天前
|
数据采集 存储 JSON
Python爬虫面试:requests、BeautifulSoup与Scrapy详解
【4月更文挑战第19天】本文聚焦于Python爬虫面试中的核心库——requests、BeautifulSoup和Scrapy。讲解了它们的常见问题、易错点及应对策略。对于requests,强调了异常处理、代理设置和请求重试;BeautifulSoup部分提到选择器使用、动态内容处理和解析效率优化;而Scrapy则关注项目架构、数据存储和分布式爬虫。通过实例代码,帮助读者深化理解并提升面试表现。
32 0
|
9月前
|
数据采集 JSON 前端开发
Python爬虫进阶:使用Scrapy库进行数据提取和处理
在我们的初级教程中,我们介绍了如何使用Scrapy创建和运行一个简单的爬虫。在这篇文章中,我们将深入了解Scrapy的强大功能,学习如何使用Scrapy提取和处理数据。