安装selenium、Splash、Puppeteer

本文介绍了如何安装和使用Selenium操控浏览器,包括下载Chrome和相应版本的ChromeDriver,以及利用Docker安装和运行Splash服务。此外,还提到了Puppeteer的Python库Pyppeteer,强调了在Python3.6+环境中安装和使用这些工具进行网页自动化测试的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装selenium

Seleinum 是一款使用代码操纵浏览器的框架,我们可以通过它驱动浏览器执行一些点击、滑动、输入指定字符等操作。

第一步下载chrome

下载安装chrome 忽略
在chrome设置查看chrome版本
image.png

第二步下载对应版本的chrome driver并配置环境变量

下载chrome driver 网址
http://chromedriver.storage.googleapis.com/index.html
没有?还有一个网址
https://googlechromelabs.github.io/chrome-for-testing/#stable
配置环境变量
image.png
image.png
image.png

第三步引入对应的python包即可

代码测试

$ python
>>> from selenium import webdriver
>>> browser = webdriver.Chrome()

使用docker 安装Splash

Splash是一个异步的JavaScript渲染服务。它是带有HTTP API的轻量级Web浏览器,能够并行处理多个页面请求,可以在页面上下文中执行自定义的JavaScript以及模拟浏览器中的点击、下滑等操作。Splash的安装方式有两种,一种是下载已经封装好的Docker镜像,另一种是从GitHub下载源码后安装,这里我推荐第一种安装方式。在安装好Docker后,只需要从DockerHub中拉取Splash镜像并运行即可,相关命令如下:

安装docker请找其他帖子,此处略

复制以下docker-compose代码到指定文件夹

version: '3.5'

services:     
  splash:
    container_name: splash
    image: scrapinghub/splash:latest
    ports:
      - 8050:8050
    volumes:
      - "/i/share/splash/:/data/image/"      #./预备存储网站截图的文件夹,根据自己需要配置
    restart: always
1.切换代码所在文件夹
cd .\电脑软件\docker\docker-compose-file\splash\

2.启动docekr容器
 docker-compose -f .\compose.yaml up -d

3.查看运行结果
docker ps -a

image.png
image.png

安装Puppeteer

使用Puppeteer可以完成大多数手动执行的操作。有开发者开源了支持Python的Puppeteer库,叫作Pyppeteer,其文档网址为https://miyakogi.github.io/pyppeteer/。要注意的是,它仅支持在Python 3.6+ 的环境下运行。同样,我们可以使用Python包管理工具pip来安装Pyppeteer,命令如下:

$ pip install pyppeteer
Scrapy遇到页面上的JavaScript动态加载内容,如`javascript:`开头的URL,通常会有些挑战,因为Scrapy本身是一个基于爬虫框架,它默认并不支持直接解析JavaScript。当遇到这种情况,你可以考虑以下几个步骤: 1. **使用 SplashSplash 的 Scrapy middleware**:Splash 是一个开源的工具,可以作为Scrapy中间件,它可以在Scrapy请求到达服务器之前执行JavaScript渲染。这样,你可以获取到完整的、渲染后的HTML。 ```python DOWNLOADER_MIDDLEWARES = { 'scrapy_splash.SplashCookiesMiddleware': 723, 'scrapy_splash.SplashMiddleware': 725, 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 810, } SPIDER_MIDDLEWARES = { 'scrapy_splash.SplashDeduplicateArgsMiddleware': 100, } SPLASH_URL = 'http://localhost:8050' # 如果本地没运行,需配置成实际地址 ``` 2. **使用 SeleniumPuppeteer**:如果需要更复杂的交互或者浏览器级别的功能,你可以结合Scrapy Shell(Selenium的一个API)或Puppeteer(Node.js库)来进行动态页面的抓取。这两个工具能模拟真实用户行为并执行JavaScript。 3. **处理返回的 JSON 数据**:对于一些JavaScript API,可能会返回JSON数据而不是HTML,这时你需要解析返回的JSON,并从中提取需要的链接。 4. **检查是否还有其他可用的API**:有时网站可能提供API供开发者抓取,而不是依赖JavaScript渲染,那么直接抓取这些API可能是更好的选择。 记得每次尝试前查看目标网站的robots.txt规则,尊重其抓取政策。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值