免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 18371 | 回复: 8
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(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 (45.44 KB, 下载次数: 328)

QQ截图20190420113807.png

论坛徽章:
0
2 [报告]
发表于 2019-04-22 13:45 |只看该作者
http://jzsc.mohurd.gov.cn/dataservice/query/staff/list

这个是需要被查询的网址

论坛徽章:
0
3 [报告]
发表于 2019-04-22 13:45 |只看该作者
  1. http://jzsc.mohurd.gov.cn/dataservice/query/staff/list
复制代码

这个是需要被查询的网址

论坛徽章:
0
4 [报告]
发表于 2019-04-22 13:46 |只看该作者
  1. jzsc.mohurd.gov.cn/dataservice/query/staff/list
复制代码

这个是需要被查询的网址

论坛徽章:
0
5 [报告]
发表于 2019-05-05 23:53 |只看该作者
这种用Mojo::DOM来做会比较简单。结合Mojo::DOM可以用Mojo::UserAgent而非LWP。

论坛徽章:
0
6 [报告]
发表于 2019-05-06 15:14 |只看该作者
回复 5# zhouzhen1

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

论坛徽章:
0
7 [报告]
发表于 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. }
复制代码

评分

参与人数 2信誉积分 +15 收起 理由
hztj2005 + 10 很给力!
523066680 + 5 Mojo好用

查看全部评分

论坛徽章:
0
8 [报告]
发表于 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
9 [报告]
发表于 2019-06-02 17:54 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP