免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4241 | 回复: 8

如何用perl写个查询下面网站并且得到信息? [复制链接]

论坛徽章:
0
发表于 2019-04-22 13:44 |显示全部楼层
本帖最后由 xiaomm250 于 2019-04-22 13:51 编辑

网址是jzsc.mohurd.gov.cn/dataservice/query/staff/list

比如查询“张三”,
然后得到
“B06120001146”,总之是这列的就可以了。
请问用perl应该如何写?

网址见下楼




QQ截图20190420113807.png

论坛徽章:
0
发表于 2019-04-22 13:45 |显示全部楼层
http://jzsc.mohurd.gov.cn/dataservice/query/staff/list

这个是需要被查询的网址

论坛徽章:
0
发表于 2019-04-22 13:45 |显示全部楼层
  1. http://jzsc.mohurd.gov.cn/dataservice/query/staff/list
复制代码

这个是需要被查询的网址

论坛徽章:
0
发表于 2019-04-22 13:46 |显示全部楼层
  1. jzsc.mohurd.gov.cn/dataservice/query/staff/list
复制代码

这个是需要被查询的网址

论坛徽章:
0
发表于 2019-05-05 23:53 |显示全部楼层
这种用Mojo::DOM来做会比较简单。结合Mojo::DOM可以用Mojo::UserAgent而非LWP。

论坛徽章:
0
发表于 2019-05-06 15:14 |显示全部楼层
回复 5# zhouzhen1

代码?或者参考代码有吗?

论坛徽章:
0
发表于 2019-05-15 14:01 |显示全部楼层
练练手

  1. use Mojo::UserAgent;

  2. my $ua = Mojo::UserAgent->new();
  3. $ua->transactor->name('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36');

  4. my $url = "http://jzsc.mohurd.gov.cn/dataservice/query/staff/list";

  5. my $dom = $ua->get($url)->result->dom;

  6. my $table = $dom->find('div[class="mtop"] table')->first;

  7. for my $tr ( @{$table->find('tr')} ) {
  8.     if ( $tr->at('td:nth-child(5)') ) {
  9.         my $num = $tr->at('td:nth-child(5)')->text;
  10.         $num =~ s{^\s+|\s+$}{}g;
  11.         print $num, "\n";
  12.     }
  13. }
复制代码

评分

参与人数 1信誉积分 +5 收起 理由
523066680 + 5 Mojo好用

查看全部评分

论坛徽章:
0
发表于 2019-05-15 14:01 |显示全部楼层
  1. use Mojo::UserAgent;

  2. my $ua = Mojo::UserAgent->new();
  3. $ua->transactor->name('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36');

  4. my $url = "http://jzsc.mohurd.gov.cn/dataservice/query/staff/list";

  5. my $dom = $ua->get($url)->result->dom;

  6. my $table = $dom->find('div[class="mtop"] table')->first;

  7. for my $tr ( @{$table->find('tr')} ) {
  8.     if ( $tr->at('td:nth-child(5)') ) {
  9.         my $num = $tr->at('td:nth-child(5)')->text;
  10.         $num =~ s{^\s+|\s+$}{}g;
  11.         print $num, "\n";
  12.     }
  13. }
复制代码

论坛徽章:
12
子鼠
日期:2014-10-11 16:46:482016科比退役纪念章
日期:2018-03-16 10:24:0515-16赛季CBA联赛之山东
日期:2017-11-10 14:32:142016科比退役纪念章
日期:2017-09-02 15:42:4715-16赛季CBA联赛之佛山
日期:2017-08-28 17:11:5515-16赛季CBA联赛之浙江
日期:2017-08-24 16:55:1715-16赛季CBA联赛之青岛
日期:2017-08-17 19:55:2415-16赛季CBA联赛之天津
日期:2017-06-29 10:34:4315-16赛季CBA联赛之四川
日期:2017-05-16 16:38:55黑曼巴
日期:2016-07-19 15:03:112015亚冠之萨济拖拉机
日期:2015-05-22 11:38:5315-16赛季CBA联赛之北京
日期:2019-08-13 17:30:53
发表于 2019-06-02 17:54 |显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。




----------------------------------------

大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP