前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python学习,爬虫不一定非要抓数据,也可以做自己喜欢的应用程序

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

原创
作者头像
云飞
发布2018-08-31 09:08:38
5960
发布2018-08-31 09:08:38
举报
文章被收录于专栏:云飞学编程云飞学编程

写在前面的话

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

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

进入正题

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

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

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

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

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

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

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

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

开始写代码

首先,先写tk的框架

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

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

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

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

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

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

最终效果如下:

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

后记

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

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

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

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

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

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

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

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

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面的话
  • 进入正题
  • 开始写代码
  • 后记
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档