分享好友 最新资讯首页 最新资讯分类 切换频道
做一个爬虫专用的url解析器
2024-12-29 08:11

首先是获取三个或以上的url(带参数的url)

做一个爬虫专用的url解析器

然后通过字符串方法将url中的基础url跟参数分离开

通过对比多个url中的同一个参数的值,

将参数分成三类

一类为不变的参数,一类为会改变的参数,还有一类是时有时无(可有可无)的参数

最后做成GUI,界面设想如下

在左上方的text窗输入url,点击加入,在右侧列表窗会显示已添加的url,如果存在希望删除的url,点击列表窗中对应的url,点击删除即可从列表窗中移除,点击解析,即对url进行解析

GUI部分

QT界面虽易做,可惜还没时间去研究QT的gui后台代码怎么实现,所以还是用tkinter好了

以下是界面代码

暂时还没有封装成类,界面也一般,不过这次加了定时器,可以定时刷新内容,牛刀小试,每秒刷新一次时间好了

界面看着其实还不赖

 

两个结果窗显示的原理大概就是将加入的url送到后台,解析后得到的结果是一个字典

左边的列表框显示的是字典的键,右边的标签显示的是单一某键对应的键值,一般就是某个参数的结果罗列

通过点击右侧的列表框的具体内容决定右侧标签显示何种内容

在显示结果的标签框 label_result 背后由一个专门存放全部数据的隐藏标签,即是代码中的 label_hidden

需要切换内容的时候即从 label_hidden 中提取出来数据以调用

后端url处理部分

通过前端得到的一个列表

首先分析一下url是否为有?存在的带参url,如果不是,则返回带有错误提示信息的字典

 

然后遍历分析url主体是否一致(为了避免有时手残输错别的url),确定一致了才仅需进行参数解析,但需要注意的是,即便是同一个网站,也会有出现http或https各种开头的情况,为了避免这种状况,url主体只取到https://后面到?前面的部分来进行对比

 

接下来就是参数分析,其实也简单,以&分割参数,获得参数键值对列表,再对参数列表进行遍历,以=分割键与值,将拥有相同键名的键值存放到另一字典中相同键名下的列表里

 

最后将存放参数的字典进行遍历,

第一步分析是否为可缺省参数,键值中的参数列表的长度小于输入url列表的长度即为存在缺省,意味着该参数可缺省,如果是可缺省,continue继续下一次循环

第二步分析是否为不变参数,计算键值中的参数列表的集合长度,如果为1,即为不变参数

否则则是或改变参数

 

最后将分析结果做成字典,输出到前端

 

具体代码如下

结果展示

取了百度贴吧三个搜索结果下的url,分别是python,matlab,c

http://tieba.baidu.com/f?ie=utf-8&kw=python&fr=search

http://tieba.baidu.com/f?ie=utf-8&kw=matlab&fr=search

http://tieba.baidu.com/f?ie=utf-8&kw=c&fr=search

加入到列表框之后,点击""解析""

最新文章
OpenAI Five:人工智能进化的新方向
(声明:此文已发表于《爱上机器人》2019年5月刊,转载请联系作者)
不坑盒子Word插件下载 v2023.0312 电脑版
不坑盒子Word插件支持Ms Office 2013及以上的版本。这款软件可以为用户提供一键公文排版、仿手写、文档自动保存、文档加密等多种
iOS 12 发布一周后,有哪些实用的「捷径」可以分享并直接添加使用?
iOS 12 正式发布已经过去一周时间,不少用户对于新功能 「捷径」都非常感兴趣。有哪些实用的「捷径」?「捷径」能帮助我们做什么
Python数据结构-----递归实现快速排序
目录前言: 快速排序 1.概念  2.示例 Python代码实现 递归实现快速排序         今天我们就来一起学习快速排序
LangChain开发环境准备-实现私有大模型OpenAI标准接口封装
要让LangChain能够调用我们部署在本地或者私有网络中的AI大模型,我们需要提供一个符合OpenAI-API标准的接口,这样L
【数据结构】快速排序(三种实现方式)
目录一、基本思想 二、动图演示(hoare版) 三、思路分析(图文) 四、代码实现(hoare版)
《iwara最新版》软件特色:
iwara最新版这是一款专为二次元小伙伴们带来的追漫神器,平台上涵盖了非常丰富的漫画资源,并且还有许多的二次元文化,让你在这
SEM竞价面试题,懂得这些,入职概率增加60%
SEM的面试,除了一些常规的问题外,这些专业知识一定要弄明白并且说明白:一、谈谈你对sem竞价的理解、认知?答:sem是一种新的网
Python爬虫小白入门学习(看这篇就够了)
今年以来,很多求职者问的一个问题就是:疫情不是结束了吗,为什么感觉今年比去年更难了? 这是因为经
【新股简析】易点天下 301171 一、公司概况二、主营业务公司作为企业国际化智能营销服务商,致力于为客户提供全球营销推广服务,帮助其高效地获取用户、提升品...
来源:雪球App,作者: 凡德投资,(https://xueqiu.com/4871450942/227315088)一、公司概况二、主营业务公司作为企业国际化智