利用python整合web信息

在前几周的帖子grep/sed/awk实战中提到,“和CoreSite - Any2 California接入商建立网络BGP邻居关系。从peeringdb (https://www.peeringdb.com/ix/142)上找到了所有接入商的信息,但是转移信息到本地不是很方便,需要进行多次文本调整,耗时较长。作为萌新,立马就想到近期学习的grep/sed/awk工具。于是就尝试处理数据。”因为当时是刚学习了linux正则的这三个工具,就立马利用了起来,权当练手。在文末也曾提到所有的操作其实都可以通过python完成。

恰巧近几天,又学习了python抓取页面提取信息的一些知识。因此,就同样的内容,再次以python的方式去处理。

▎简易版脚本如下:

#/usr/bin/env python                                  
import requests,bs4
headers={‘User-Agent‘: ‘Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0‘}
url=‘https://www.peeringdb.com/ix/142‘
peering=requests.get(url,headers=headers)
peering.raise_for_status()
peers=bs4.BeautifulSoup(peering.text[:],‘html.parser‘)
elemPeer=peers.select(‘.peer a‘)
elemASN=peers.select(‘.asn‘)
elemIP4=peers.select(‘.ip4‘)
elemSpeed=peers.select(‘.speed‘)
elemPolicy=peers.select(‘.policy‘)

for i in range(len(elemPeer)):
    print(elemPeer[i].getText()+‘*‘+elemASN[i].getText()+‘*‘+elemIP4[i].getText()+‘*‘+elemSpeed[i].getText()+‘*‘+elemPolicy[i].getText())

作为简易版,这里没有做任何的异常处理,也没有对各个元素的list进行长度比较。这部分在后期可以考虑加上。代码相关的解释参见学习笔记,主要运用了requests和BeautifulSoup两个模块。需要解释的是,elemPeer这个变量在处理的时候,因为“class="peer"”内还有一行“<a href="/net/1234">Zenlayer Inc</a>”,因此需要加上“a”元素精确定位抓取。

▎效果如图:

由于测试系统为CentOS 7,不支持Excel,因此这里不使用openpyxl模块导入EXCEL文件里这个功能。暂时改为手动处理。

对比此文和前次利用grep/sed/awk处理的两种方式,可以发现python版的处理方式更为简洁,人工处理的部分更少。由此,可以看到python在处理大数据信息上的优势。

时间: 2024-10-05 19:45:12

利用python整合web信息的相关文章

python 实现web框架simfish

python 实现web框架simfish 本文主要记录本人利用python实现web框架simfish的过程.源码github地址:simfish WSGI HTTP Server wsgi模块提供了简单的simple_server, wsgiref.simple_server.make_server(host, port, app, server_class=WSGIServer, handler_class=WSGIRequestHandler) 官方提供的例子, from wsgiref

[Python] 利用Django进行Web开发系列(一)

1 写在前面 在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的.现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的.Web开发的途径有好多种,比如传统的.Net,还有很火爆的Java.Python作为一种灵活好学的脚本语言,已经越来越受程序员的欢迎和热捧,甚至成为程序员的必备技能.Django是Python的Web开放框架,好多人说学习Python就是在学Django,从这也可以看出Django的强大.博主也是

利用python httplib模块 发送Post请求测试web服务是否正常起来!

最近在学习python,恰好老大最近让我搞个基于post请求测试web服务是否正常启用的小监控,上网查了下资料,发现强大的Python恰好能够用上,所以自己现学现卖,顺便锻炼下自己. 由于本人也刚接触这块不久属于菜鸟级别,所以在任务之前,只能上网把基于post请求的web监控了解清楚,这些资料网上很多,因为本人认为完成这类任务最重要的就是要将实现的原理研究清楚,写程序只是实现的工具,如果大的逻辑不正确,后面的都是白忙活. 了解post发送请求的原理后,利用Python的httplib模块进行逻辑

利用python itchat给女朋友定时发信息

利用itchat给女朋友定时发信息 涉及到的技术有itchat,redis,mysql,最主要的还是mysql咯,当然咯,这么多东西,我就只介绍我代码需要用到的,其他的,如果需要了解的话,就需要看参考资料了哟 实现的功能:1.可以保存微信的消息,包括群聊和好友(文字/视频/语音/图片)2.在群里@自己,可以调用图灵机器人的API进行文字回复(类似于机器人)3.调用定时任务,在指定时间发送消息至某人 需要了解的基础:1.python基础2.mysql基础3.redis基础 实现效果如下: 只需要在

利用python爬取贝壳网租房信息

最近准备换房子,在网站上寻找各种房源信息,看得眼花缭乱,于是想着能否将基本信息汇总起来便于查找,便用python将基本信息爬下来放到excel,这样一来就容易搜索了. 1. 利用lxml中的xpath提取信息 xpath是一门在 xml文档中查找信息的语言,xpath可用来在 xml 文档中对元素和属性进行遍历.对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势.具有如下优点:(1)可在xml中查找信息 :(2)支持html的查找:(3)通过元素和属性

C#开发微信门户及应用(47) - 整合Web API、微信后台管理及前端微信小程序的应用方案

在微信开发中,我一直强调需要建立一个比较统一的Web API接口体系,以便实现数据的集中化,这样我们在常规的Web业务系统,Winform业务系统.微信应用.微信小程序.APP等方面,都可以直接调用基于JSON数据格式的Web API接口,在我之前的几篇随笔中,对这方面都有一定的介绍,本篇继续这个主题,细致深入的阐述如何在接口和源码的基础上整合Web API.微信后台管理及前端微信小程序的应用方案. 1.基于Web API的微信开发框架 首先我们各个业务模块,都应该围绕着Web API进行展开,

开发web信息管理系统用到的相关技术

Java Web应用的核心技术包括以下几个方面:● JSP:进行输入和输出的基本手段.● JavaBean:完成功能的处理.● Servlet:对应用的流程进行控制.● JDBC:是与数据库进行交互不可缺少的技术.● JSTL和表达式语言EL:完成对JSP页面中各种信息的控制和输出. 1.分布式技术 在开发复杂的应用系统时,往往把系统分成逻辑上或物理上分离的部件,部件通常在各自平台的运行环境中运行,平台可以是异构的,平台之间通过网络连接. 在开发分布式应用系统时,最开始是两层的C/S(客户/服务

Python写WEB日志分析程序的一些思路

1.背景 刚到一家公司需要写一个实时分析tshark捕捉到的数据,tshark一直往文本里面写数据,写一个程序要实时获取到添加的数据并进行分析处理最后入库.此时思绪狂飞,想了一些比较挫的方法. 本人想到的方法: 1.每隔一定时间去查看下文件的mtime,如果有改动则读取数据,并记录读取的行数.下次再去读这个文件的数据则上次记录的行数开始继续读.当文件行数太大的时候这个程序的效率就很慢了,也可以记录上次读取的字节数,然后使用linux下的open系统系统中的seek从指定位置处读取.但是要是用C语

《利用python进行数据分析》读书笔记--数据加载、存储与文件格式

输入输出一般分为下面几类:读取文本文件和其他更高效的磁盘存储格式,加载数据库中的数据.利用Web API操作网络资源. 1.读写文本格式的数据 自己感觉读写文件有时候"需要运气",经常需要手工调整.因为其简单的文件交互语法.直观的数据结构,以及诸如元组打包解包之类的便利功能,Python在文本和文件处理方面已经成为一门招人喜欢的语言.pandas提供了一些用于将表格型数据读取为DataFrame对象的函数.见下表: 下面大致介绍一下这些函数在文本数据转换为DataFrame时的一些技术