Python正则表达式与网络爬虫漫谈Python正则表达式与网络爬虫漫谈

来源 :安家(建筑与工程) | 被引量 : 0次 | 上传用户:hgq41102
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读


摘要:本文简明的讲清了Python正则表达式与网络爬虫的关系,以及如何进行网络爬虫,希望对欲快速入门Python网络爬虫的人们有一定支持和指导作用。

关键词:Python正则表达式;网络爬虫

一、网络爬虫

网络爬虫,就是行走在网络上的爬虫,遇到喜欢的食物,就会抓取下来。Python爬虫,就是只要能在网络上看到的数据都可用Python爬取,大多数的爬虫都是通过发送请求-获取页面-解析页面-提取和存储内容来实现,实际就是用来获取网页的信息。

二、正则表达式(Regular Expression)

字符串是我们在编程中用到的一种数据结构,涉及到很多的字符串的方法操作,同样判断一个字符串是否满足某种格式是我们常常遇到的问题,可以用正则表达式来处理。设计思想为定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否則,该字符串就不“匹配”。

三、Pyhton正则表达式详解

Python 自1.5版本起增加了re 模块,提供了正则表达式模式。Python 1.5之前版本则是通过 regex 模块提供 Emecs 风格的模式。Emacs 风格模式可读性稍差些,而且功能也不强,因此编写新代码时尽量不要再使用 regex 模块。

就其本质而言,正则表达式(或 RE)是一种小型的、高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现。使用这个小型语言,你可以为想要匹配的相应字符串集指定规则;该字符串集可能包含英文语句、e-mail地址、TeX命令或任何你想要的东西。随后可以检查如“这个字符串匹配该模式吗?”或“在这个字符串中是否有部分匹配该模式呢?”。你也可以使用 RE 以各种方式来修改或分割字符串。

正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。在高级用法中,也许还要仔细留意引擎是如何执行给定 RE ,如何以特定方式编写 RE 以令生产的字节码运行速度更快。

正则表达式语言相对小型和功能有限,因此并非所有字符串处理都能用正则表达式完成。当然也有些任务可以用正则表达式完成,不过最终表达式会变得异常复杂。碰到这些情形时,编写 Python 代码进行处理可能反而更好;尽管 Python 代码比一个精巧的正则表达式要慢些,但它更易理解。

首先通过一个实例来讲解正则表达式的用法。如我们想提取字符串“China 123 world”中的3个数字,可以通过如下代码实现:

import re

content=’China 123 world’

result=re.findall(‘\d\d\d’,content)

print(result)

运行结果:[‘123’]

下面我们解释一下:第1行代码是导入re库,其为Python自带。findall()函数的功能是在原始文本中寻找所有符合匹配规则的文本内容。用法如下:re.findall(匹配规则,原始文本)。

再看一例:

import re

content=’China 123 world 456 铁路12306’

result=re.findall(‘\d\d\d’,content)

print(result)

运行结果:['123', '456', '123']

规则中‘\d’表示一个数字字符。运行结果是一个列表。如果要得到字符’456’,可以用list()方法:b=result[1],print(b)实现,其运行结果为:456。

一些常见特定符号及其功能见图表1。

例3:非贪婪匹配

import re

content=’文本A百度新闻文本B’

result=re.findall(‘文本A(.*?)文本B’,content)

print(result)

运行结果:['百度新闻']

其中(.*?)叫做非贪婪匹配, re.findall(‘文本A(.*?)文本B’,content)的结果就是提取文本A与文本B之间的内容,在实际爬取过程中,常常用到re.findall(匹配规则,原始文本,re.S),re.S加上后就不受换行的影响。

例4:简单清洗

函数:re.sub(被替换的内容,替换成的内容,原字符串)。

代码:title=re.sub(‘<.*?>’,’ ’,title)

将title字符串中以<…>形式的内容都将被空格代替。

总之,用正则表达式就可以实际网络爬虫。其基本思想如下:

第一步:获取网页原代码;

第二步:通过正则表达式抓取想要的内容;

第三步:数据清洗。

正则表达式在爬虫中的应用

Python 因为开源、简便、易上手,被普遍的应用在网络爬虫,并且新手编程人员也可以很容易实现代码开 发。它在网络爬虫方面有较强的技术。它可以帮助用户高效、快速地获取用户想要的信息,并且,依照最近的几年来看,数据还在暴增的大环境下,网络爬虫技术也会在众多同类语言中脱颖而出,成为网络数据获取的主 要技术。Python 语言的热度也会越来越高,有可能成为以后的网络的基本的高级编程语言。

例5:一个用python编写的网络数据抓取程序。

网络爬虫不仅能够为搜索引擎采集网络信息,而且还可以作为定向信息采集器,定向采集某些网站下的特定信息。而随着近几年来的发展,python的受欢迎度也越来越高,而它的运用的领域也是越来越多,比如人工智能和大数据等领域,python都可在其中扮演者重要的角色。

参考文献

[1]丁辉 主编 Python基础与大数据应用 人民邮电出版社,2020.

[2] [美]John V.Guttag 著 陈光欣 译Python编程导论人民邮电出版社,2018.

作者简介: 陈陵,男,1963年3月,汉族,重庆人,本科学历,数学副教授,重庆工贸职业技术学院人工智能学院,主要从事电子商务、数据分析的教学研究

其他文献
摘要:在科技迅速发展过程中,先进技术被不断运用在医疗设备当中,医院在向着现代化方向发展背景下,对于医疗设备的依赖性也越来越大。在医疗计量器不够准确情况下,将会导致临床出现错误诊断与错误治疗,严重情况可能会造成不能挽回的后果。因此应重视医疗设备计量检定工作,保证医疗设备在使用时的安全性以及效率性,促进医疗水平的不断提升。关键词:医疗设备;计量检定;质量检测前言医疗仪器是基于传统仪器和生物科学理论,结合物理参数、化学物理参数和相关医疗设备安全检查,为中国医疗设备产品专门设计和建立的,主要技术基于中国医疗设备领
期刊
摘要:盘扣式脚手架作为当今广泛使用的脚手架,具有技术成熟、可靠的连接性、结构稳定性、安全性和可靠性等优点。并逐渐被广泛应用于桥梁、房屋等工程建设中。文章介绍了承插型盘扣式脚手架的基本组成和连接方式,表明在安全性、经济性和实用性方面均优于传统支撑系统。因此,盘扣式脚手架广泛用于各类高风险项目,应用前景良好。关键词:建筑施工;承插型盘扣式;钢管支架;应用前景前言当前,超高层支撑系统的最广泛应用主要包括碗扣式脚手架、钮扣型钢管脚手架、门式钢管脚手架等。其中,承插型盘扣式脚手架系统因其诸多优点而迅速推广到工程领域
期刊
关键词:光伏发电项目施工 隐患种类 可能造成的事故类型前言:人与自然和谐共生可持续发展,必须坚持节约资源和保护环境,树立绿水青山就是金山银山的理念,采取行之有效措施。随着我国二氧化碳排放力争2030年前达到峰值,力争2060年前实现碳中和目标的提出,新能源光伏发电项目建设进入了发展的快车道。但是目前我国建设施工现场由于露天作业、高处作业、特种作业、交叉作业多等原因事故频发、屡禁不止。本文通过对光伏发电项目施工现场安全双重预防体系一个方面隐患排查治理的角度,去辨识可能的安全隐患和可能造成的事故类型,从而有针
期刊
摘要:计算机应用技术是近些年来新出现的一种高新技术,能够有效的推动我国社会的发展与改革,对于企業的发展来说,计算机应用技术能够整合企业社会资源,完善管理模式,推动企业向着正确的方向优化与革新,所以企业想在激烈的市场竞争中站稳脚根,就必须高度重视信息化管理体系,将计算机应用技术纳入自身的工作核心体系之中,实现企业核心竞争能力的有效提升,这样才能够从根源上完善企业的发展道路,明确企业发展方向,为我国现代化建设保驾护航。关键词:计算机应用技术,信息化管理体系,问题与优化方向一、计算机应用技术与企业信息化的关系计
期刊
摘要:随着水土保持信息化的发展,县级水土保持工作也需要适应时代的发展采取“天地一体化”监管技术,ArcGis作为地理信息系统应用软件,具有成熟的信息化,可广泛应用于水土保持外业调查、水土保持工程规划设计、水土流失动态监测和水土保持方案审批等方面。关键词:水土保持ArcGis信息化2017年3月水利部办公厅出台了《水利部办公厅关于印发<全国水土保持信息化工作2017-2018年实施计划>的通知》,2017年11月,陕西省水土保持局印发了《关于加强生产建设项目水土保持监督管理信息化工作的通知》,在
期刊
摘要:通过对南京市养老地产行业发展现存的问题进行归纳总结,深刻了解当前南京市发展养老地产行业的不足之处,本文将对这些问题进行深入剖析,找出其内在原因,为南京市养老地产行业的顺利展开提供建议。关键词:养老 地产 服务一、政府主体支持力度有待加强通过市场调研,南京市实施的养老服务相关法律基本都是转发国家相关法律法规,纵观全国养老地产的实践,各地方政府的支持力度还远远不够。从南京来看,尽管南京作为试点城市之一,但由于政府支持的不足,养老地产实施效果不尽人意。1、政府参与方面从当前全国实践来看,只有上海在养老地产
期刊
摘要:本文对应用情况进行分析研究,提出以下解决措施,以期为相关人员提供参考。关键词:物联网技术;智能电网建设;应用技术;0 引言社会进步势必会促进物联网技术的发展,而将物联网技术与智能电网建设相结合,也是我國智能化信息体系不断完善和发展所带来必然结果。但是因为这些发展存在的不确定性,所以将物联网技术应用在智能电网建设当中也面临着种种问题和挑战。1 物联网技术及智能电网概念1.1 物联网概念与特征对于物联网的概念来说,物联网就是可以将物与物相互连接的一种互联网络,它是在互联网络的基础之上扩展延伸出来的一种网
期刊
摘要:本文浅析后疫情时代园林建设转型发展需求以及园林和互联网技术的创新融合发展趋势,以江苏省园艺博览会作为智慧园林的实践样本,分析了数字技术在景区监测管理、智能服务、营销运营等版块的运用,为智慧园林的可持续发展实践做参考。关键词:互联网 智慧园林 数字技术 可视化系统1、引言新冠疫情的到来,加快了实体世界与虚拟世界共存发展的步伐,也使各行业充分认识到加速数字化、智能化转型的重要性。在国家大力发展数字“新基建”背景下,随着智慧城市的广泛推行,将数字技术和风景园林规划设计、园林建设生产、园林管理、智能服务相结
期刊
摘要:由于建筑工程本身所涉及的施工内容众多,为保证建筑工程质量,工程需要大量且不同类型建筑材料的支持,同时需要确保材料质量优质性。为能达到这一点,建筑企业应加强对建筑材料的检测与管理,并且解决在此过程中所存在的问题,提高材料检测与管理质量,有助于增强建筑工程质量,提高企业经济效益,促进企业稳定发展。关键词:建筑工程;施工材料;检测与管理引言社会经济发展进程不断加快,而建筑行业作为促进社会经济发展,推动城市化发展进程的关键,建筑行业在当下社会经济不断发展的背景之下,得到大幅度提升,这时相关市场竞争激烈程度也
期刊
摘要:本文以重庆市某临江建筑基坑及岩质高切坡支护工程为例,介绍了该基坑边坡工程的设计方法、分析思路及支护方式等。通过规范要求的计算方法并结合极限平衡法对边坡的稳定性进行了理论计算和分析,为设计提供理论指导和借鉴。通过数值分析方法对边坡开挖变形和应力变化进行模拟分析,有利于更好地指导设计和施工,尤其对坡顶有重要建筑物的边坡开挖变形能有效预判和控制。关键词:高切坡,支护结构,平面滑动法,稳定分析1.引言随着城市化进程不断加大,工程建设因用地紧张导致临近建筑的深基坑、高边坡也越来越多,安全风险和治理难度也非常大
期刊