Perl语言的特点和数据分析示例

简介: 与Python相比,Perl有以下区别:● Perl更注重灵活性和表达力,Python更注重简洁性和一致性。● Perl更适合处理文本和正则表达式,Python更适合处理数据结构和算法。● Perl有多种方法可以实现同一个功能,Python有一种最佳实践(The Zen of Python)。● Perl使用分号和花括号来结束语句和定义代码块,Python使用缩进来组织代码结构。下面用Perl写一个爬虫程序,采集https://weibo.com的TOP10热搜

有代码的显示器28.jpg

Perl是一种通用的高级开源编程语言,具有简洁易读的语法,可用于完成各种任务,从处理文本文件到语音识别。它具有出色的文本处理能力,可用于文本操作、基于正则表达式的模式匹配、原地文件编辑、日志文件分析以及将文件转换为PDF、HTML或XML格式。Perl还可用于编写通用网关接口(CGI)程序,因为它可以处理二进制文件。

Perl的特点包括:

  • 借鉴了其他编程和脚本语言,如C和Shell。
  • 继承了C语言的很多特性,包括变量、语句、表达式、控制结构和子程序。
  • 借鉴了Shell脚本的一些特性,如使用前导符号(如$,#,@)和方便的内置函数(如sort)。
  • 是一种松散类型的语言,可以自动推断变量的数据类型并自动管理内存。
  • 支持类型转换,可以改变对象的数据类型,如将字符串转换为数字。
  • 跨平台,并且与HTML、XML等标记语言兼容。
  • 拥有完善的生态系统,提供超过25000个开源模块供使用。

与Python相比,Perl有以下区别:

  • Perl更注重灵活性和表达力,Python更注重简洁性和一致性。
  • Perl更适合处理文本和正则表达式,Python更适合处理数据结构和算法。
  • Perl有多种方法可以实现同一个功能,Python有一种最佳实践(The Zen of Python)。
  • Perl使用分号和花括号来结束语句和定义代码块,Python使用缩进来组织代码结构。

下面用Perl写一个爬虫程序,采集https://weibo.com的TOP10热搜:

usestrict;
usewarnings;
useLWP::UserAgent;
useThread::Pool;
useHTTP::Proxy;
usePDF::API2;
# 亿牛云代理# 爬虫加强版 设置代理服务器的主机、端口、用户名和密码my$proxy_ip='www.16yun.cn';
my$proxy_port='31000';
my$proxy_username='16YUN';
my$proxy_password='16IP';
# 随机 User-Agent 列表my@user_agents= (
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Safari/605.1.15');
# 创建 UserAgent 对象my$ua=LWP::UserAgent->new();
# 设置代理服务器my$proxy=HTTP::Proxy->new(
host=>$proxy_ip,
port=>$proxy_port,
proxy_user=>$proxy_username,
proxy_pass=>$proxy_password);
# 创建线程池my$pool=Thread::Pool->new(
    {
workers=>5,    # 设置线程数do=> \&process_url,    # 处理函数    }
);
# 采集热搜数据my$url='https://weibo.com';
my$response=$ua->get($url);
if ($response->is_success) {
my$content=$response->decoded_content;
my$pdf=PDF::API2->new();
while ($content=~m/<a class="list_item" href=".*?" target="_blank" action-data="(.*?)" suda-uatrack=".*?" >(.*?)<\/a>.*?<\/h3>.*?<span class=".*?" >(.*?)<\/span>/sg) {
my$rank=$1;
my$title=$2;
my$clicks=$3;
$pool->add($rank, $title, $clicks, $pdf);
    }
# 保存为 PDF 文件$pdf->save('hot_searches.pdf');
$pdf->end();
}
else {
die"Failed to retrieve content: ".$response->status_line;
}
# 等待线程池中的任务完成$pool->join();
subprocess_url {
my ($rank, $title, $clicks, $pdf) =@_;
# 在这里可以对热搜数据进行分析和处理# 将结果添加到 PDF 文件中my$page=$pdf->page();
my$font=$pdf->corefont('Helvetica', -encoding=>'latin1');
my$text=$page->text();
$text->font($font, 12);
$text->translate(50, $pdf->height() -50);
$text->text("Rank: $rank\nTitle: $title\nClicks: $clicks\n\n");
}

请确保在运行代码之前,您已安装 PDF::API2 模块。您可以使用 CPAN 或其他 Perl 模块管理工具进行安装。使用这段代码,热搜数据将会以 PDF 格式存储在 hot_searches.pdf 文件中。

相关文章
|
数据可视化 数据挖掘 数据处理
【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)
【100天精通Python】Day61:Python 数据分析_Pandas可视化功能:绘制饼图,箱线图,散点图,散点图矩阵,热力图,面积图等(示例+代码)
515 0
|
3月前
|
机器学习/深度学习 数据可视化 数据挖掘
为啥我敢说Python是数据分析界的扛把子语言?
为啥我敢说Python是数据分析界的扛把子语言?
|
6月前
|
监控 数据可视化 算法
上网行为监控管理:利用R编写的数据分析和可视化代码示例
本文介绍了使用R语言进行上网行为监控管理的方法。通过加载和分析日志数据,如示例代码所示,可以了解用户行为。使用ggplot2绘制时间趋势图以洞察用户访问模式,借助caret进行聚类分析以识别异常行为。此外,利用httr包可自动将数据提交至网站,提升管理效率。R语言为网络安全和行为监控提供了强大工具。
157 0
|
数据可视化 数据挖掘 数据处理
【100天精通Python】Day58:Python 数据分析_Pandas时间序列数据处理,创建和解析时间数据pd.to_datetime(),.loc[],resample() 用法示例
【100天精通Python】Day58:Python 数据分析_Pandas时间序列数据处理,创建和解析时间数据pd.to_datetime(),.loc[],resample() 用法示例
540 0
|
数据可视化 数据挖掘 数据处理
|
存储 数据挖掘
|
数据挖掘 Python
spss、R语言、Python数据分析系列(5)spss基本统计分析
spss、R语言、Python数据分析系列(5)spss基本统计分析
218 0
spss、R语言、Python数据分析系列(5)spss基本统计分析
|
数据挖掘 数据格式 索引
快速介绍Python数据分析库pandas的基础知识和代码示例(二)
快速介绍Python数据分析库pandas的基础知识和代码示例
189 0
快速介绍Python数据分析库pandas的基础知识和代码示例(二)
|
机器学习/深度学习 存储 数据挖掘
快速介绍Python数据分析库pandas的基础知识和代码示例(一)
快速介绍Python数据分析库pandas的基础知识和代码示例
144 0
快速介绍Python数据分析库pandas的基础知识和代码示例(一)