Python学习,爬虫不一定非要抓数据,也可以做自己喜欢的应用程序

写在前面的话

最近各种负面消息,对爬虫er来说,并不是很友好,当然这个是对于从业者来说的,对像我这样的正在学习python的个人来说,python爬虫的学习只需要保持以下几点,基本不会出现大的问题:

  • 遵守Robots协议(额,尽量遵守吧)
  • 优化代码,不对服务器造成影响为最佳(暴力爬取会严重影响网站的日常访问,最好加入时间间隔)
  • 敏感数据不要碰(个人隐私、付费数据等等敏感数据,不要去碰,大部分的违法行为就是因为没有遵守这点……)
  • 数据量不要太大(毕竟是学习阶段,能抓到几页数据就可以了,不要批量的抓取大量的数据,对大多数的学习者来说,几遍抓到了大量的数据,也没有更好的用途,那么也就没什么用了!)

进入正题

今天给大家分享的是,制作一个基于爬虫的小程序,实现快速查询IP的功能。

使用的工具为python3.6和pycharm,模块:requests库、tkinter库(GUI)、lxml库

先来看看网页是什么样子的

打开主页后,网页会自动显示你的IP及所在的地理位置(上图红色覆盖部分),然后在上方填入待查询的IP,点击查询后,抓包看看返回的内容

可以看到,这里返回了一个html内容,我们直接抓这个包就可以,只需要在url上将待查询的ip加到url后面就可以了。

开始写代码

首先,先写tk的框架

具体功能不一一讲了,大家可以自行在网上找到tk的教程,这里就说一下大概的思路和数据的传入:首先是做出大的框架,然后从上往下依次写各个功能模块,第33行,这里用一个函数获取本机的IP和位置,数据从网页抓出,函数截图如下:

返回一个列表,然后在34和36行依次导入,显示在程序内,为了显眼一些,加入背景颜色。42行为输入待查询的IP,并在第44行的按钮中绑定查询按钮,在函数中直接显示在Listbox模块中,对应的函数截图如下:

ps:代码中用f-string方法来格式化字符串,具体使用方法大家可以去看看我的其他文章,里面有详细说明。

最终效果如下:

后记

后来,用pyinstaller打包生成exe文件,但是出现了报错,最后的退出部分出现了错误

然后将退出按钮函数修改为exit,打包后依然报错

后来修改了一下退出按钮的函数,将command的值修改为sys.exit,就可以了

bton = Button(root, text="退出",width =40,command=sys.exit)

可能是在Windows下运行程序,quit或者exit不能直接用于退出程序,导致的报错。

整个代码不到50行搞定,爬虫部分甚至不到10行,在这方面,python依然是很有优势的!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端杂谈

广告等第三方应用嵌入到web页面方案 之 使用iframe嵌入

55270
来自专栏做全栈攻城狮

安卓开发教程-实战网页源代码查看器,安卓程序员必备

本系列教程致力于可以快速的进行学习安卓开发,按照项目式的方法,通常一篇文章会做一个小程序。提高学习的兴趣。

26030
来自专栏Coco的专栏

【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序

45030
来自专栏魏艾斯博客www.vpsss.net

宝塔面板和 Nextcloud 搭建私有云/网盘的过程记录

个人或者团队需要属于自己的私有云/网盘存储资料,用于分享用途,大家常用搭建的程序是 owncloud,但是也停止更新了。然后核心团队出来做了一个全新的私有云-N...

1.9K80
来自专栏前端知识分享

第211天:git和github的区别和使用详解

它是一个源代码管理工具,在一个项目中,凡是由开发人员编写的都算是源代码,源代码有必要管理起来,让源代码可以被追溯,主要记录每次变更了什么,谁主导这次变化。人为的...

18730
来自专栏张戈的专栏

替代crontab,统一定时任务管理系统cronsun简介

摘 要 cronsun 是一个分布式任务系统,单个节点和 Linux 机器上的 crontab 近似。是为了解决多台 Linux  机器上 crontab 任...

2K130
来自专栏Jerry的SAP技术分享

推荐一个非常好用的Chrome扩展应用,用于美化Json字符串

我在网上逛了一圈,找到一个比较实用的Chrome扩展应用,可以一键实现将Chrome打开网页的背景色修改成护眼的豆沙绿,这样在网上浏览网页,眼睛舒服多了。

17100
来自专栏小李刀刀的专栏

用JavaScript动态输出的JS脚本不能执行

随着Ajax的越来越多地运用,HTML的内容又开始由“所见即所得”开始向“所见未必所得”发展了。这就是动态改变网页内容的魅力所在吧。 在公司产品动易2006版...

43250
来自专栏知晓程序

[好文回顾] 如何引导公众号粉丝进入小程序?

也许你已经知道,微信提供了「小程序关联公众号」的功能,而且小程序还能关联 50 个公众号。

17520
来自专栏前端儿

移动前端页面与Chrome的远程真机调试

前几日刚入手新手机小米5,系统真心流畅呀。为啥要买小米5呢,因为要提高生产力呀,好好玩移动前端开发呀哈哈哈

78730

扫码关注云+社区

领取腾讯云代金券