StephenShawn's Blog

love&&curiosity

首先,确保你已经安装了 Node.js。可以通过以下命令来检查是否已经安装 Node.js:

1
2
node -v
npm -v

如果没有安装 Node.js,你可以从 Node.js 官网 下载并安装最新版本的 Node.js。

2. 初始化 Node.js 项目

如果你还没有创建 Node.js 项目,可以通过以下命令初始化一个新的 Node.js 项目:

1
2
3
mkdir my-playwright-project
cd my-playwright-project
npm init -y

这将会创建一个 package.json 文件,管理你的项目依赖。

3. 安装 Playwright

你可以使用 npmyarn 来安装 Playwright。执行以下命令安装 Playwright 和浏览器依赖:

1
npm install playwright

默认情况下,Playwright 会安装必要的浏览器二进制文件(Chromium、Firefox 和 WebKit),因此它会比较大。如果你只需要安装特定的浏览器,你可以选择安装指定的浏览器包:

  • 只安装 Chromium:

    1
    npm install playwright-chromium
  • 只安装 Firefox:

    1
    npm install playwright-firefox
  • 只安装 WebKit:

    1
    npm install playwright-webkit

4. 验证安装

安装完成后,你可以创建一个简单的脚本来测试 Playwright 是否工作正常:

创建一个文件 test.js,并添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const { chromium } = require("playwright");

(async () => {
// 启动浏览器
const browser = await chromium.launch({ headless: false });
const page = await browser.newPage();

// 打开一个页面
await page.goto("https://example.com");

// 截图保存
await page.screenshot({ path: "example.png" });

// 关闭浏览器
await browser.close();
})();

然后,运行脚本:

1
node test.js

如果一切正常,Playwright 会启动一个 Chromium 浏览器实例并打开 https://example.com,然后保存页面截图为 example.png

5. 常见问题

  • 如果你在安装过程中遇到浏览器二进制文件下载失败的情况,确保你的网络连接正常,并且没有防火墙或代理阻止下载。
  • Playwright 会在安装时自动下载 Chromium、Firefox 和 WebKit。如果你不需要某个浏览器,可以手动卸载它们,或者仅安装你需要的特定浏览器。

通过这些步骤,你就可以在 Node.js 环境中成功安装并使用 Playwright 进行浏览器自动化操作。

一、Playwright

Playwright 是用 TypeScript(JavaScript 的超集)编写的。TypeScript 提供了静态类型检查,增强了 Playwright 的可维护性和开发体验。Playwright 的核心代码和 API 基于 Node.js 环境,因此它是一个主要面向 JavaScript/TypeScript 开发者的工具。

然而,Playwright 并不仅仅限于 JavaScript 和 TypeScript,它提供了 多语言绑定,使得开发者可以使用其他编程语言来操作 Playwright。除了 TypeScript 和 JavaScript,Playwright 还支持以下语言:

  • Python:通过 Playwright 的 Python 库,你可以使用 Python 编写自动化脚本。
  • **C#**:Playwright 为 C# 开发者提供了相应的库和接口。
  • Java:Playwright 也提供了 Java 语言的绑定,允许 Java 开发者使用 Playwright 进行浏览器自动化。

语言支持的绑定:

  1. TypeScript/JavaScript:最原生的支持,因为 Playwright 本身是用 TypeScript 开发的。
  2. Python:提供了 Python 绑定,可以方便地在 Python 环境中使用 Playwright。
  3. **C#**:Playwright 为 C# 开发者提供了 SDK 和 API。
  4. Java:Playwright 同样支持 Java 环境的使用,提供了相应的 API。

总结来说,Playwright 的核心是使用 TypeScript 编写的,但它的多语言支持使得开发者可以根据自己的需求选择不同的编程语言来使用该工具。

二、Selenium

Selenium 是用 Java 编写的核心库,但它支持多种编程语言,包括 Java、Python、C#、Ruby、JavaScript(Node.js)等。Selenium 提供了多种语言的绑定(API),这样开发者可以使用自己熟悉的编程语言与 Selenium 进行交互。

主要组成部分:

  1. Selenium WebDriver
    • 这是 Selenium 最核心的部分,负责与浏览器进行交互。
    • WebDriver 本身是用 Java 编写的,但可以通过语言绑定支持多种编程语言。
  2. Selenium Grid
    • 用于并行化测试和跨多个机器执行。
    • Selenium Grid 也是用 Java 编写的。
  3. Selenium IDE
    • 一个用于录制和回放测试脚本的工具,最初是作为 Firefox 插件开发的,后来支持 Chrome。
    • IDE 也是基于 JavaScript 和其他前端技术的。

支持的编程语言:

  • Java:最早的 Selenium 版本是用 Java 开发的,提供了最完整的功能和最广泛的社区支持。
  • Python:提供了 Python 语言的绑定,适用于使用 Python 编写自动化脚本的开发者。
  • **C#**:C# 开发者可以使用 Selenium 提供的 C# 语言绑定进行自动化操作。
  • Ruby:Selenium 同样提供了 Ruby 绑定,适合 Ruby 开发者。
  • **JavaScript (Node.js)**:Selenium 也支持 JavaScript 和 Node.js 环境,适合现代 Web 开发的自动化测试。

总结来说,Selenium WebDriver 的核心部分是用 Java 编写的,但它提供了多种语言的接口,使得开发者可以使用不同的编程语言进行自动化测试或爬虫开发。

1.生成新的 SSH 密钥

1
ssh-keygen -t ed25519 -C "your_email@example.com"

2.测试 SSH 连接

​ 将 your_email@example.com 替换为你在 Git 服务提供商(如 GitHub)上注册的邮箱地址。

执行命令后,会提示你选择密钥的保存位置和设置密码(密码可以为空)。一般情况下,直接按回车键使用默认设置即可。

1
ssh -T git@github.com

兼容RHEL的linux系统的现状

RHEL(Redhat Enterprise Linux)的免费替代

国外较出名兼容RHEL有RockyLinux与Amalinux

RHEL常用的自8版本以后改为DNF(与yum兼容)

dnf的使用

查看linux内核信息

1
uname -a

查看linux发行版信息

1
cat /etc/os-release

配置静态网路

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
vi /etc/sysconfig/network-scripts/ifcfg-ens160

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
# 静态IP地址
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=ens160
UUID=293f1d04-332e-4de2-8f19-4910bca6672c
DEVICE=ens160
# 开启
ONBOOT=yes
# 本机地址
IPADDR=192.168.166.6
# 子网掩码
NETMASK=255.255.255.0
# 虚拟VM8网卡 NAT 网关
GATEWAY=192.168.166.2
# DNS 域名解析服务器IP地址
DNS1=114.114.114.114
DNS2=223.5.5.5
DNS3=8.8.8.8

重启网络

1
nmcli c reload

SSH连接问题 网络不可达(怀疑是VMware软件问题,配置SSH映射就好了)

网络也能ping外网了,具体操作见地址

  • Node.js常用爬虫框架与无头浏览器

NodeCrawler
Simplecrawler

puppeteer

JavaScript编写的开源Web爬虫

  1. NodeCrawler
    实现语言: JavaScript
    GitHub星标数: 3999
    官方支持链接

简介:

NodeCrawler是一种广为使用的Web爬虫,它基于NodeJS实现,具有非常快的爬取速度。
Nodecrawler非常适用于偏爱使用JavaScript编程或者致力于JavaScript项目的开发人员。其安装也非常简单。
JSDOM和Cheerio(用于HTML解析)实现服务器端渲染。其中,JSDOM更为稳定。
特性:

使用 Cheerio(默认)或JSDOM实现服务端DOM和自动jQuery插入。
可配置池子规模和重试次数。
控制爬取率限制。
请求的优先队列。
支持forceUTF8模式,使得爬虫可以检测并转换字符集。
与4.x乃至更新版本兼容。
– 官方文档:https://github.com/bda-research/node-crawler

– 官方网站:http://nodecrawler.org/

阅读全文 »

Java编写的开源Web爬虫

  1. Apache Nutch
    实现语言: Java
    GitHub星标数: 1743
    官方支持链接

简介:

Apache Nutch是一种高度可扩展、可伸缩的开源Web爬虫软件项目。
如果要列出最好的开源Web爬虫列表,Apache Nutch无疑金榜题名。
作为一种用于数据挖掘的高度可扩展、可伸缩的开源代码Web数据抽取软件项目,Apache Nutch得到了广泛的使用。
Nutch支持单机运行,但是在Hadoop集群上运行可最大化地发挥其强大能力。
全球范围内很多数据分析人员和科研人员、应用开发人员和Web文本挖掘工程师都在使用Apache Nutch。
Apache Nutch是一种Java编写的跨平台解决方案。
特性:

默认情况下,爬取数据和分析数据是独立的过程。
广泛支持多种文档格式,包括纯文本、HTML/XHTML+XML、XML、PDF、ZIP等。
使用XPath和命名空间实现映射。
通过Hadoop支持分布式文件系统。
链接图形式的数据库。
支持NTLM认证。
– 官方文档: https://wiki.apache.org/nutch/

– 官方网站: http://nutch.apache.org/

阅读全文 »
0%