laravieira / scraping
简单的网络爬虫框架,基于Curl和str*函数。
Requires
- php: ^8.2
- ext-curl: *
- ext-mbstring: *
This package is auto-updated.
Last update: 2024-09-30 01:17:45 UTC
README
简单的网络爬虫框架,基于Curl和str*函数。需要PHP ^8.0(可以轻松降级到PHP 7)
你能做什么?
有一些函数可以简化你的脚本,如下所示
全局函数
- upname => 格式化并返回字符串到命名格式(每个单词的首个字符大写)
- price => 返回类型为 'xx$: 9.999,99' 的价格字符串的浮点值
- accents => 替换重音符号为等效字符
- strmstr => 返回 start3 之后、start2 之后、start1 之后的字符串
- strpart => 返回 start 和 end 之间的中间字符串
- strmpart => 返回 start1 之后、start2 之后的字符串,其中 start2 在 start1 之后
爬虫对象
- Scrapping::cache => 可以保存或返回缓存
- Scrapping::cacheFolder => 可以设置自定义文件夹来缓存
- Scrapping::json => 解析并打印响应的json
- Scrapping::isOnSession => 告诉是否已通过服务器设置了会话
- Scrapping::load => 重新使用之前的连接的会话
- Scrapping::useSession => 设置/返回是否启用了会话设置
- Scrapping::userAgent => 设置/返回 userAgent
- Scrapping::server => 设置/返回服务器主机基础URL
- Scrapping::session => 设置/返回服务器会话ID
- Scrapping::hasSession => 返回是否设置了服务器会话ID
- Scrapping::sesionName => 设置/返回服务器会话cookie名称
- Scrapping::get => 向服务器发送GET请求并返回
- Scrapping::post => 向服务器发送POST请求并返回
- Scrapping::proccess => 处理GET和POST请求以组织数据
如何使用?
upname
upname(string $text);
只需将 text 字符串作为参数传递以进行格式化,结果将是格式化后的字符串。以下是一些示例,每个块的注释表示输出
示例
echo upname('lara vieira'); // 'Lara Vieira'
echo upname('LARA VIEIRA'); // 'Lara Vieira'
echo upname('LEONARDO DE CÁPRIO'); // 'Leonardo de Cáprio'
echo upname('DON PEDRO II'); // 'Don Pedro II'
price
price(string $text);
只需将 text 字符串作为参数传递以进行格式化,结果将是浮点值。以下是一些示例,每个块的注释表示输出
echo price('US$: 3.567,56'); // 3567.56
echo price('R$: 3.456.234,45'); // 3456234.45
echo price('Price is R$: 234,45'); // 234.45
accents
accents(string $text);
只需将 text 作为参数传递进行格式化,结果将是格式化的字符串。以下是一个示例,注释表示输出
echo accents('Aglomeração, Apóstolo, vô, vó'); // 'Aglomeracao, Apostolo, vo, vo'
strmstr
strmstr( string $haystack, string $start1, string $start2, string|null $start3=null );
此函数返回所有在 start1 字符串之后、start2 字符串之后、start3 字符串之后(如果传递了 start3)的 haystack 字符串,或者所有在 start2 字符串之后、start1 字符串之后的 haystack 字符串。返回值将包括最后一个传递的起始字符串,如 strstr。
此函数类似于一系列的 strstr 函数
strstr(strstr(strstr(haystack, start1), start2), start3)
以下是一些示例,每个块的注释表示输出
echo strmstr('ABC ABC ABC', 'C'); // 'C ABC ABC'
echo strmstr('ABC ABC ABC', 'B', 'A'); // 'ABC ABC'
echo strmstr('ABC ABC ABC', 'B', 'B', 'A'); // 'ABC'
strpart
这是一个用于网络爬取的非常喜欢的函数。
strpart( string $haystack, string|null $start = null, string|null $end = null, bool $keep_start = false );
此函数将在 haystack 中返回第一个 start 字符串和第一个 end 字符串(在 start 字符串之后)之间的中间字符串。
-
如果
start字符串为空,将返回haystack中在第一个end字符串出现之前的所有内容。 -
如果
end字符串为空,将返回haystack中在第一个start字符串出现之后的所有内容。 -
如果将
keep_start布尔值设置为true,默认为false,则函数将按正常方式返回,但包括start字符串在返回值的开始处。
以下是一些示例,每个块的注释表示输出
echo strpart('ABC ABC ABC', ' ', ' '); // 'ABC'
echo strpart('ABC ABC ABC', ' '); // 'ABC ABC'
echo strpart('ABC ABC ABC', end:' '); // 'ABC'
echo strpart('ABC ABC ABC', ' ', ' ', true); // ' ABC'
echo strpart('<h2>Subtitle<h2>', '>', '<'); // 'Subtitle'
echo strpart('<div><div>Content</div></div>', '<div>', '</div>'); // '<div>Content'
strmpart
strmpart( string $haystack, string $start1, string $start2, string|null $end = null, bool $keep_start = false );
此函数解决了 strpart 的最后一个示例。
此函数将在 start2 字符串之后(即第一个 start1 字符串之后)和 start2 字符串之后的第一个 end 字符串之间的中间字符串。
-
如果
end字符串为空,将返回haystack中在第一个start2字符串之后、第一个start1字符串之后的所有内容。 -
如果将
keep_start布尔值设置为true,默认为false,则函数将按正常方式返回,但包括start2字符串在返回值的开始处。
以下是一些示例,每个块的注释表示输出
echo strmpart('<div><div>Content</div></div>', '<div>', '<div>', '</div>'); // 'Content'
echo strmpart('<div><div>Content</div></div>', '>', '>', '<'); // 'Content'
echo strmpart('<a id="link1"><h2 id="text1">Content</h2></a>', '<h2', 'id="', '"'); // 'text1'