Perl6 必应抓取(1):测试版代码

2023-12-23 20:40
文章标签 代码 抓取 测试版 perl6

本文主要是介绍Perl6 必应抓取(1):测试版代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一个相当丑漏的代码, 以后有时间再优化了。

默认所有查找都是15页, 如果结果没有15页这么多估计会有重复。速度还是很快的。

sub MAIN() {my $fp = open 'bin_result.txt', :w;my $number = 15;print 'String:';my $string = get;$string  = do given $string {S:g/\s/+/};use HTTP::UserAgent;my $url = 'http://cn.bing.com/search?q=';my $ua = HTTP::UserAgent.new;my $check = rx/'<'cite'>'(.*?)'</cite>'/;#要查的内容my @number = '';@number.append(0..$number);my $page='';my $html;my $target = $url~$string~'&first=20&FROM=FERE'~$page;$html = $ua.get($target).content;loop {say '===============> '~$target;$html ~~ $check;$html = $/.postmatch;#$0 = do given ~$0 {S:g/'<strong>'//;}if not $0 {#当是null时, 说明这一页已全部提取, 构造下一页$page = Int($page);my $page_next = $string~'&first='~$page~'0&FROM=FERE'~$page;$target = $url~$page_next;$html = $ua.get($target).content;$page++;#/search?q=123&first=10&FORM=PERE#/search?q=123&first=20&FORM=PERE1#/search?q=123&first=30&FORM=PERE2#/search?q=123&first=30&FORM=PERE2#last;$html ~~ $check;$html = $/.postmatch;if ($page > $number) {last;}}my $ok_check = $0.Str;my $result = $ok_check;$result = do given $result {S:g/'<strong>'//;}$result = do given $result {S:g/'</strong>'//;}say $result;$fp.say($result);}#$fp.print($html);
}

 

 

 

 

 

 

 

 

 

 

 

 

下次代码优化:

总结一下必应的规律, 如下:

http://cn.bing.com/search?q=123456789&first=1&FORM=PERE
http://cn.bing.com/search?q=123456789&first=11&FORM=PERE
http://cn.bing.com/search?q=123456789&first=21&FORM=PERE1
http://cn.bing.com/search?q=123456789&first=31&FORM=PERE2
http://cn.bing.com/search?q=123456789&first=41&FORM=PERE3
http://cn.bing.com/search?q=123456789&first=51&FORM=PERE4
http://cn.bing.com/search?q=123456789&first=61&FORM=PERE4
http://cn.bing.com/search?q=123456789&first=71&FORM=PERE4
http://cn.bing.com/search?q=123456789&first=81&FORM=PERE4
http://cn.bing.com/search?q=123456789&first=91&FORM=PERE4

 

在页面上测试, 参数只虽两个即可:

q=查询字符串&first=起始帐号

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/perl6/p/7425641.html

这篇关于Perl6 必应抓取(1):测试版代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/weixin_30371469/article/details/97081585
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/529382

相关文章

MySQL 添加索引5种方式示例详解(实用sql代码)

《MySQL添加索引5种方式示例详解(实用sql代码)》在MySQL数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中,下面给大家分享MySQL添加索引5种方式示例详解(实用sql代码),... 在mysql数据库中添加索引可以帮助提高查询性能,尤其是在数据量大的表中。索引可以在创建表时定义,也可

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

Python实现一键PDF转Word(附完整代码及详细步骤)

《Python实现一键PDF转Word(附完整代码及详细步骤)》pdf2docx是一个基于Python的第三方库,专门用于将PDF文件转换为可编辑的Word文档,下面我们就来看看如何通过pdf2doc... 目录引言:为什么需要PDF转Word一、pdf2docx介绍1. pdf2docx 是什么2. by

Spring Security介绍及配置实现代码

《SpringSecurity介绍及配置实现代码》SpringSecurity是一个功能强大的Java安全框架,它提供了全面的安全认证(Authentication)和授权(Authorizatio... 目录简介Spring Security配置配置实现代码简介Spring Security是一个功能强

通过cmd获取网卡速率的代码

《通过cmd获取网卡速率的代码》今天从群里看到通过bat获取网卡速率两段代码,感觉还不错,学习bat的朋友可以参考一下... 1、本机有线网卡支持的最高速度:%v%@echo off & setlocal enabledelayedexpansionecho 代码开始echo 65001编码获取: >

Java集成Onlyoffice的示例代码及场景分析

《Java集成Onlyoffice的示例代码及场景分析》:本文主要介绍Java集成Onlyoffice的示例代码及场景分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 需求场景:实现文档的在线编辑,团队协作总结:两个接口 + 前端页面 + 配置项接口1:一个接口,将o

SpringBoot实现Kafka动态反序列化的完整代码

《SpringBoot实现Kafka动态反序列化的完整代码》在分布式系统中,Kafka作为高吞吐量的消息队列,常常需要处理来自不同主题(Topic)的异构数据,不同的业务场景可能要求对同一消费者组内的... 目录引言一、问题背景1.1 动态反序列化的需求1.2 常见问题二、动态反序列化的核心方案2.1 ht

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

使用Java实现Navicat密码的加密与解密的代码解析

《使用Java实现Navicat密码的加密与解密的代码解析》:本文主要介绍使用Java实现Navicat密码的加密与解密,通过本文,我们了解了如何利用Java语言实现对Navicat保存的数据库密... 目录一、背景介绍二、环境准备三、代码解析四、核心代码展示五、总结在日常开发过程中,我们有时需要处理各种软