解决方案:基于百度IP定位的网站访问来源分析的python实战项目
优采云 发布时间: 2022-12-13 07:28解决方案:基于百度IP定位的网站访问来源分析的python实战项目
蟒
基于百度IP定位网站接入源分析的实战项目 – 实践笔记1 – IP与经纬信息采集
源代码在 github 中:
本文介绍如何使用 Python 转换 IP 经纬度信息
该项目的总体规划和进展在:
0. 目录
1.ip采集插件:SlimStat。
如果你想练习这个项目需要大量的IP信息,请使用WordPress插件SlimStat获取IP信息采集。请将其安装在插件项目中并使用前一天的数据,然后再继续项目
2. 数据库导出 JSON
本节将允许将SQL语句直接导出到MySQL,或phpmyadmin作为可视导出
转到phpmyadmin后端并选择博客的数据库
.
在此表中,有所有访问IP的记录,输入后
将上面的 SQL 语句修改为
Oracle PL/SQL
12
选择从'wp_slim_stats'
执行后页面只会检索 IP 信息,然后下面有一个导出按钮,点击并选择自定义为 JSON 格式,导出得到:
另存为文件名 ip_add_all.json
3. IP转换经纬度
4. 百度IP定位api_字典分析
5. 生成输出 JSON 信息
以下代码解决了以上三个问题
如果你想自己使用,需要申请一个账号和申请,他会给你一个AK键,加到下面的代码中自动完成ip->经度
在这里你可以找到百度API的信息,在开放平台
蟒蛇代码很简单
蟒
61718192021importurllib2importtimeIpList=open(“ip_add_all.json”,“r”).read()Ip=eval(IpList)flag=0file=open('point.json','w')
foriinrange(20):#这里的数字要估算你的有多少数据ip=Ip[i]['ip']res= urllib2.urlopen(“”+ip+“&coor=bd09ll”)#这部分里ak的值最好换成你的,如果在零时间使用,你可以先使用我的 a=res.read()zidian=eval(a)flag+=1if(zidian['status']==0):p rintflag,iplng=zidian['content']['point'][' x']lat=zidian['content']['point']['y']#print lat,lngstr_temp='{“lat”: '+lat+', “lng”:'+lng+'},\n'file.write(str_temp)file.close()
转换后您将获得的是:
完成转换
解决方案:一种智能化网络信息采集系统及采集方法与流程
本发明涉及技术领域,具体涉及一种智能网信息采集系统及采集方法。
背景技术:
在网络信息爆炸的时代,信息量变得异常庞大,在浩如烟海的信息海洋中寻找有价值的信息变得越来越困难。因此,为了解决这个问题,出现了很多机器学习的方法,比如可以根据用户请求进行预测的网页排名方法等等,但是即使使用非常复杂的排名算法,如果没有topic索引,再好的信息爬虫也未必能检索到网页有效信息。
为了提供更准确、高效的搜索服务,信息采集系统通常通过多个服务器节点从各大网站采集获取所需信息。但出于安全考虑,很多网站服务器开始限制同一终端的每日访问量,对一天或一段时间内访问量超过设定访问量的终端实施IP封锁的“惩罚”限制。由于现有信息采集系统的任务分配机制缺乏灵活性,导致系统资源浪费,降低信息采集效率。
技术实现要素:
本发明的目的在于提供一种智能网络信息采集系统和采集方法,具有灵活的任务分配机制,减少硬件和网络资源,提高页面更新效率的优点。
为实现上述目的,本发明提供了以下技术方案:一种智能网络信息采集系统,包括网络服务器、任务管理器、任务分配器和信息采集器、网络服务器和网页。数据提取器连接,网页数据提取器连接任务管理器,任务管理器连接任务分配器,任务分配器连接信息采集器;
网络服务器,用于根据web协议获取网页中的图片和文字数据;
网页数据提取器,用于提取网页中的图片和文本数据;
任务管理器用于管理数据库,存储网页中的图片和文本数据,保存网页的使用规则;
任务分配器用于分配采集收到的任务,并对任务完成情况进行反馈。任务分配器判断在设置的信息采集器缓冲时间内访问常用网页的次数,选择当前最适合执行信息的采集器信息采集器采集作业采集器,以及当前最易访问的常用网站目标网站,将信息采集任务分配给当前最易访问的目标网站信息采集器;
消息采集器用于接收采集任务并将采集的任务添加到任务分配器,消息采集器用于查看分配给它的消息采集任务目标网站 用于访问和下载。
优选地,网络服务器在获取网页中的图文数据的过程中,通过http、ftp、gopher、bbs中的至少一种或多种网络协议获取网页的数据。
优选地,信息采集器用于下载目标网站的规则,根据规则对网络信息执行采集,上传采集的结果到数据库。
优选地,任务分配器用于对信息采集器的采集结果进行分析处理,然后进行数据统计得到统计结果,并将统计结构上传至数据库。
一种智能网络信息采集方法,包括以下步骤:
s1:根据web协议获取网页中的数据,提取网页中的元素数据,将提取的元数据存入数据库;
s2:网页数据提取器区分中文和英文网页和文本。如果超文本网页代码采用gb2312标准,则为中文网页,否则为英文网页。将网页标题和正文中的中文、英文或符号按字符编码范围内判断,提取文本,过滤得到的html源文件,去除标签控制字符提取文本信息,去除script,而在解析html的时候,如果遇到script开始标签,则搜索script结束标签,搜索成功后,在结束标签之后继续分析;根据预先建立的特殊字符表找出网页数据中的特殊字符,并对特殊字符进行处理,过滤网页数据字符并存储网页文本:网页中的文本存储并在分隔文本之间添加分隔符,同时将标签分为分隔标签和普通标签。当两个文本为普通标签时,两个文本为连续文本;最后过滤网页数据,统一网页数据字符格式;
s3、任务管理器对网页数据提取器提取的网页中的图文数据进行管理,并设置网页的使用规则;
s4:任务分配器根据接收到的信息判断数据库中存储的数据,根据判断得到合适的信息采集器对目标信息执行采集,将采集信息在任务管理器中分配给目标网页,访问并下载目标网页。
优选地,s2中的去除脚本也可以将默认脚本作为文本提取出来,然后判断文本是否为脚本代码,如果是脚本则不采集。
与现有技术相比,本发明的有益效果如下:
1、本发明的智能网信息采集系统可以参考信息采集服务器当前的任务分配和完成情况,根据常用的访问次数进行任务分配工作网页,从而提高信息采集效率,并且只存储常用网页的数据,大大节省了硬件和网络资源,保存的页面数量少更新快,有利于人们的使用。
2、本发明能够准确提取网页数据的文本信息,能够去除脚本,过滤掉网页数据字符,保证提取文本的准确性,并且能够对特殊字符进行特殊的分析处理,能够识别中文和英文网页,并可以采取相应的处理措施,避免错误处理网页数据。
图纸说明
图1是本发明系统的*敏*感*词*;
图2是本发明的流程图。
详细方法
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅为本发明的部分实施例,并非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
示例 1
一种智能网络信息采集系统,包括网络服务器、任务管理器、任务分发器和信息采集器,网络服务器与网页数据提取器相连,网页数据提取器与网页数据提取器相连。任务管理器,任务管理器连接任务分配器,任务分配器连接信息采集器;网络服务器根据web协议获取网页中的图文数据 网络服务器获取网页中的图文数据 在此过程中,网页的数据为通过http、ftp、gopher、bbs至少一种或多种网络协议获取;网页数据提取器,用于提取网页中的图文数据;任务管理器用于管理数据库,保存网页中的图片和文字数据,保存网页的使用规则;任务分配器用于分配采集收到的任务并对任务完成情况进行反馈,任务分配器将设置信息采集器判断并选择信息采集器表示当前最适合在常用网页的缓冲期内执行采集工作,并且可以访问常用网站目标网站中的最新信息网站,并且信息采集被分配给当前最容易访问的目标网站的采集器,任务分配器用于对目标采集器的采集结果进行分析并进行处理,然后通过统计得到统计结果,并将统计结构上传至数据库;信息采集器用于接收采集任务,采集任务被添加到任务分配器,信息采集器用于访问和下载目标网站 分配给它的信息采集任务,信息采集器用于下载目标网站的规则,并根据规则采集网络信息,上传采集 结果到数据库。
智能网信息采集系统可以参考信息采集服务器当前的任务分配和完成情况,对常用网页的访问进行任务分配,提高信息采集的效率。采集,而且只存储常用网页的数据,大大节省了硬件和网络资源,而且保存的页面数量少更新快,有利于人们的使用。
一种智能网络信息采集方法,包括以下步骤: s1:根据网络协议获取网页中的数据,提取网页中的元素数据,将提取的元数据存储在数据库中;s2:网页数据提取器区分中文和英文网页和文本。如果超文本网页编码采用GB2312标准,则为中文网页,否则为英文网页。网页标题和正文中的中文、英文或符号范围编码判断,提取文本,过滤得到的html源文件并去除标签控制字符提取文本信息,去除脚本,在解析html时,如果遇到脚本开始标签,查找脚本结束标签,查找成功后结束标签后继续分析;根据预先建立的特殊字符表找出网页数据中的特殊字符并对特殊字符进行处理,过滤网页数据字符并存储网页文本:将文本存储在网页中并保存在分隔文本之间添加分隔符,同时将标签分为分离标签和普通标签。当两个文本为普通标签时,两个文本为连续文本;最后过滤网页数据,统一网页数据的字符格式;s3、任务管理器管理网页数据提取器提取的网页中的图片和文本数据,并设置网页的使用规则;s4:任务分配器根据接收到的信息处理数据库中存储的数据进行判断,得到相应的信息采集器到<
示例 2
在实施例一中,增加以下步骤:
去除脚本也可以将默认脚本的文本提取出来,然后判断文本是否为脚本代码,如果是脚本则不采集。
一种智能网络信息采集系统,包括网络服务器、任务管理器、任务分发器和信息采集器,网络服务器与网页数据提取器相连,网页数据提取器与网页数据提取器相连。任务管理器,任务管理器连接任务分配器,任务分配器连接信息采集器;网络服务器根据web协议获取网页中的图文数据 网络服务器获取网页中的图文数据 在此过程中,网页的数据为通过http、ftp、gopher、bbs至少一种或多种网络协议获取;网页数据提取器,用于提取网页中的图文数据;任务管理器用于管理数据库,保存网页中的图片和文字数据,保存网页的使用规则;任务分配器用于分配采集收到的任务并对任务完成情况进行反馈,任务分配器将设置信息采集器判断并选择信息采集器表示当前最适合在常用网页的缓冲期内执行采集工作,并且可以访问常用网站目标网站中的最新信息网站,并且信息采集被分配给当前最容易访问的目标网站的采集器,任务分配器用于对目标采集器的采集结果进行分析并进行处理,然后通过统计得到统计结果,并将统计结构上传至数据库;信息采集器用于接收采集任务,采集任务被添加到任务分配器,信息采集器用于访问和下载目标网站 分配给它的信息采集任务,信息采集器用于下载目标网站的规则,并根据规则采集网络信息,上传采集 结果到数据库。
一种智能网络信息采集方法,包括以下步骤: s1:根据网络协议获取网页中的数据,提取网页中的元素数据,将提取的元数据存储在数据库中;s2:网页数据提取器区分中文和英文网页和文本。如果超文本网页编码采用GB2312标准,则为中文网页,否则为英文网页。网页标题和正文中的中文、英文或符号范围编码判断,提取文本,过滤得到的html源文件并去除标签控制字符提取文本信息,去除脚本,在解析html时,如果遇到脚本开始标签,寻找脚本结束标签,查找成功后结束标签后继续解析,对于默认脚本,去掉脚本提取为文本,然后判断文本是否为脚本代码,如果是脚本则不采集;根据预先建立的特殊字符表查找网页数据中的特殊字符并处理特殊字符,过滤网页数据字符并存储网页文本:将文本存储在网页中并在分离的文本之间添加分隔符,并将标签划分为单独的标签和普通标签,当两个文本为普通标签时,两个文本为连续文本;最后,对网页数据进行过滤后,统一网页数据的字符格式;s3:任务管理器提取图片和管理文本数据,设置网页的使用规则;s4:
可以准确提取网页数据的文本信息,可以去除脚本过滤掉网页数据字符,保证提取文本的准确性,可以对特殊字符进行特殊分析处理,可以识别中英文网页并进行相应处理避免错误处理网页数据的措施。
尽管已经示出和描述了本发明的实施例,但是本领域的技术人员可以理解,在不脱离本发明的原则和精神的情况下,可以对这些实施例进行各种更改、修改和替换。和修改,本发明的范围由所附权利要求及其等同物限定。