推广 热搜: page  音视频  使用  个数  搜索引擎  选择  企业  父亲  百度  可以 

简单小爬虫爬取招标信息

   日期:2024-12-17     作者:dn2ve    caijiyuan   评论:0    移动:http://ww.kub2b.com/mobile/news/5849.html
核心提示:以图像算法开发的名义入职的第一天,直属领导不在,隔壁通讯组小头目说,你就做个爬虫吧......虫吧......吧..

以图像算法开发的名义入职的第一天,直属领导不在,隔壁通讯组小头目说,你就做个爬虫吧......虫吧......吧......
没办法,写吧。但很久以前只写过很简单的爬虫,这次就边学边写。
基本功能:爬取某招投标网站上的项目内容和具体每个项目的截止日期时间,有关键字查询功能和截止日期设置功能。
已添加的后续功能:QQ聊天和电子邮件提示功能。

待添加的后续功能:网页UI或者程序UI

目标网站为招标公告,由于是数据是动态加载的url不变的多页表格内容,按爬取静态网站的方法是不可行,参考文章Python 爬虫爬取多页数据中的内容,首先对按F12对本网页工作原理进行分析。

而我们要的消息就在Response中。

 使用Python模拟请求,在Headers下找到Request Headers部分,这是请求的头数据。同时观察Form Data部分,可见这部分定义了请求的表格的页码和每页的行数。进行模拟发送请求时,改变这部分内容就能获取不同页上的数据。

 将这部分内容复制后做整理,使用request.post就能获得response内容。

 

注意: url不是网址,是Name下的那个链接。

如此则获得了公告名称和相应的id以及这个公告是否是首次发布,id用于访问具体公告页面,提取截止日期,是否是首次发布涉及访问的网页前缀网址不同。

进入几个具体的公告中,同样按F12在控制台中查看信息,发现这个请求是GET形式的。

 此处我犯了次失误,没注意到公告其实有两种,一种是普通公告,一种是更正公告,前者在链接中使用BNID,后者则使用TNAID做区分,且后来才发现这在最初POSE返回的文档中就有标记,首次发布的公告“is_new_tuisong”设定为1,而修改过的公告则“is_new_tuisong”设定为2。故应注意观察网址和属性的变化。注意此处的url依然是Name中的链接而非原网址。

将GET到的文本转为json格式并对需要的部分内容进行提取。BNNAME是普通公告名TNANAME为更正公告名KBBEGINTIME为截止日期。

 

这里的日期时间大约已经没问题了_(:зゝ∠)_ 

 
 

简单小爬虫爬取招标信息

大约是修正了日期时间问题_(:зゝ∠)_

保存为crawler.py,如下

 
 

主要参考Python实现自动发送邮件和python使用QQ邮箱实现自动发送邮件;后来使用Yandex邮箱替换QQ邮箱,不需要授权码,直接使用密码登录,邮箱申请很简单,Yandex开启smtp服务可参考链接,全部勾都打上。相比QQ邮箱最大的问题是Yandex邮箱似乎被很多邮箱认为是垃圾邮件,需要手动去垃圾箱找并设备白名单,且由于是毛子邮箱,其发送延迟比较大的。

群发时报错AttributeError: 'list' object has no attribute 'decode' 的问题参考替换

保存于文件e.py中

 
 

主要参考QQ自动发送消息,由于qqbot已经死了,而酷Q实在太麻烦,最终还是选择pywin32对窗口进行操作。

保存于文件qq2.py中

 

有个缺点,发完消息会停留在消息窗口,不会自动返回原窗口。 

参考Python3使用twilio模块发送短(免)信(费)的方法(详细)可以弄个免费试用,2020年10月初始附送15.5美刀的样子。

 

后续功能开发中

 

本文地址:http://ww.kub2b.com/news/5849.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新文章
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新文章
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号