收藏 分销(赏)

基于Python的数据采集技术研究.pdf

上传人:自信****多点 文档编号:2043372 上传时间:2024-05-14 格式:PDF 页数:4 大小:2.47MB
下载 相关 举报
基于Python的数据采集技术研究.pdf_第1页
第1页 / 共4页
基于Python的数据采集技术研究.pdf_第2页
第2页 / 共4页
基于Python的数据采集技术研究.pdf_第3页
第3页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、2023年12 月计算机应用文摘第39 卷第2 4期基于Python的数据采集技术研究石腾兴,张丽华,林澍,徐沈晖(嘉兴南湖学院,浙江嘉兴3140 0 0)摘要:互联网的不断发展和大数据、人工智能的迅速崛起使数据变得尤为重要,几乎所有行业都需要数据的支持来推动业务发展,因此如何采集海量的数据信息成为当前函待解决的问题。文章基于Python深入探讨了数据采集的过程,包括数据请求、解析、处理、存储等,并对不同技术的优缺点进行了比较,旨在为开发者的技术选择提供参考。关键词:大数据;数据采集;Python中图法分类号:TP391Research on data acquisition technolo

2、gy based on PythonSHI Tengxing,ZHANG Lihua,LIN Shu,XU Shenhui(Jiaxing Nanhu University,Jiaxing,Zhejiang 314000,China)Abstract:The continuous development of the Internet and the rapid rise of big data and artificialintelligence have made data particularly important.Almost all industries require data

3、support to drivebusiness development.Therefore,how to collect massive amounts of data information has become anurgent problem to be solved.This article delves into the process of data collection based on Python,including data request,parsing,processing,storage,etc.,and compares the advantages anddis

4、advantages of different technologies,aiming to provide reference for developers in technologyselection.Key words:big data,data acquisition,Python1引言随着互联网技术的不断发展,数据的数量和速度都在迅猛增长,人们已进人了以数据为核心的新时代。目前,数据成为最重要的资源之一,它具有无限的价值潜力,被应用于各个领域。在商业领域,企业可以通过数据分析了解市场、消费者行为以及自身业务的状况,从而做出更明智的商业决策。在医疗健康领域,医疗机构可以通过分析病人数据

5、来预测疾病的风险和趋势,从而实现疾病的早期预防和干预。在个人层面,数据也为人们提供了许多的便利和服务,如一些智能家居产品可以根据用户的生活习惯和偏好自动调节温度、光线等,从而为其提供更加智能化的生活体验。然而,实现数据分析的前提是获取数据,数据采集是获取数据的重要途径之一。数据的人工采集方式费时费力,且其采集过程中可能存在人为的文献标识码:A采集错误。相较而言,基于技术手段的数据采集具有以下优势:(1)可提高采集效率;(2)可扩大数据规模,从而获取更多的数据,进而得到更精准的结果;(3)可通过避免人为误差和主观性以提高数据质量和准确性;(4)可实现自动化处理和分析,从而提高数据的利用效率和价值

6、。因此,基于技术手段的数据采集可在各个领域中帮助人们更好地进行数据分析,从而使数据体现其价值和意义。2楼数据采集工具现有的国内外常用数据采集工具包括Scrapy,Beautiful Soup,Selenium,PySpider等,实现数据采集的主要开发语言则包括Java,Python及C+等。其中,Python是最为常用的开发语言之一,世界上大约8 0%的数据采集是基于Python实现的,其具有以下优势:(1)易学易用:Python的语法简单明了且上手难基金项目:嘉兴南湖学院2 0 2 2 年校级SRT项目(8 517 2 2 318 3);教育部产学合作协同育人项目(2 0 2 0 0 2

7、2 540 17);浙江省教育科学规划一般课题(2 0 2 2 SCG050)100度低 1,对于初学者来说非常友好;(2)强大的第三方库支持:Python拥有丰富的第三方库支持 2 ,包括一些专门用于爬虫的库,如Beautiful Soup,Scrapy等,这些库能够大幅简化爬虫代码的编写和调试过程,从而提高开发效率;(3)高效地处理文本数据:Python的内置字符串处理和正则表达式功能非常强大,有助于开发者高效地处理网页中的文本数据,从而更好地实现爬虫的数据提取和清洗;(4)开放性和灵活性:Python 是一门开源语言,拥有庞大的社区和用户群体,各种开源爬虫框架层出不穷,用户既可以选择适合

8、自己的爬虫工具,也可以根据自己的需求开发定制化的爬虫程序;(5)跨平台支持:Python支持多个操作系统平台,包括Windows,Linux,Mac OS等,这使开发出的爬虫程序能够在不同的平台上运行和部署3数据采集流程数据采集是通过各种技术手段从多个数据源中获取数据并进行处理和存储的过程 3,其一般流程如图1所示。开始结束(1)数据请求。爬虫首先需要发送请求以获取目标网站的页面数据,请求可以使用Python中的Requests库或者Scrapy框架来实现。请求过程中需要设置请求头、Cookie等信息,以及合适的请求方法和参数,以获取需要的数据。(2)数据解析。请求到网站的页面数据后,需要对数

9、据进行解析,常见的数据解析方法包括正则表达式、BeautifulSoup、X Pa t h 等。通过对HTML代码的解析和分析,可以获取所需的数据信息,包括文字、图片、链接等。(3)数据处理。在获取到数据后,需要进行数据处理,包括清洗、过滤、转换等。其中,清洗数据的目的是去除原始数据中不必要的部分,并提取出需要的信息;过滤数据可以通过条件过滤、去重等方法来实现;数据转换则是将提取出来的数据转换为合适的格式,如 CSV,JSON等。(4)数据存储。处理好的数据需要进行存储,包括本地存储和数据库存储。常用的数据库包括计算机应用文摘MySQL,MongoDB等。在存储数据的过程中,需要考虑数据的安全

10、性、可读性和可扩展性等问题。在整个数据采集过程中,数据请求和数据解析是数据采集中较为困难的步骤。在数据请求方面中,部分网站可能会对请求进行反爬虫处理,且不同的网站可能具有不同的反爬虫策略,需要有针对性地进行处理;在数据解析方面,不同的网站可能具有不同的网页结构和HTML代码,解析起来可能会比较困难。因此,开发者需要利用一定的技术和策略来克服困难。3.1数据请求(1)Re q u e s t。Re q u e s t s 技术是爬虫的基础性工具,它是以Python 为基础开发的 HTTP 库,该技术允许开发者直接发送HTTP/1.1请求,开发者可通过Request库可以方便地发送HTTP请求并获

11、取服务器响应。同时,Request 可以模拟浏览器发送请求,对简单的数据请求和页面爬取而言,使用Requests更加简便。若网站设置了反爬虫策略,则数据的获取可能会变得困难。因此,开发者须对请求设置HTTP 请求头、cookie等参数,从而实现更为灵活和精准的请求。(2)Selenium。Se le n iu m 是一个自动化测试工具,支持Chrome,Firefox,IE等浏览器。Selenium可以模数据请求数据解析数据存储数据处理图1数据采集流程2023年第2 4期拟人类操作浏览器的行为,如点击、输人、滚动等。通过Selenium,开发者可以模拟用户在浏览器上的操作,从而实现模拟登录、模

12、拟点击等复杂操作。对一些需要模拟人类操作的数据请求或者数据爬取而言,Selenium可以很好地解决问题。与Request 技术相比,Selenium 可以避开一系列复杂的通信流程,其反反爬能力较强。需要注意的是,Selenium的运行速度相对较慢,且对计算机资源的消耗较大,因此在数据请求方面的选择需要根据具体需求来决定。(3)框架。Python提供了许多框架技术来实现数据采集 4,这些框架具有更高的抽象层次、可重用性、可维护性、扩展性、性能等优势。例如,Scrapy是一个Python 的开源爬虫框架,它使用Twisted 异步网络框架,支持多线程和分布式爬取,可实现高效快速的爬取。同时,该框架

13、具有强大的解析器和数据提取工具,能够方便地处理HTML,XML等网页格式。3.2楼数据解析数据解析技术的优缺点如表1所列。(1)X Pa th。X Pa th 是一种用于定位XML文档节点的语言,在Python中依赖于Ixml第三方类包。其中,Xpath既可使用路径表达式来选取XML文档中的节点或节点集,也可通过元素和属性进行导航。相较于其他框架,该框架速度更快。(2)CSS 选择器。CSS 选择器是用于网页中选择2023 年第 2 4 期和操作DOM元素的一种语法,该语法通过W3CHTML标准协议簇对网页内容进行定义,从而分析源网页内容的CSS结构并定位HTML文本信息的节点,具体定位方式包

14、括标签名、类名、ID、属性等定位。(3)正则表达式。正则表达式是一种用于处理字工具(1)定位元素更加灵活,支持相对路径和绝对路径(2)支持多种运算符,如and,or,contains等XPath(3)可以通过XPath函数来进行一些特殊的操作,如获取某个节点的属性、文本等(1)选择器简洁CSS选择器(2)执行效率高,因为浏览器原生支持CSS选择器(3)支持多个选择器的组合,可以快速定位到目标元素(1)灵活性强,可以根据需要灵活定制匹配规则正则表达式(2)可以进行复杂的匹配,如贪婪匹配、非贪婪匹配、分组等(3)适用范围广,可以匹配文本、HTML等各种格式的数据3.3数据处理3.3.1文文本格式从

15、网上获取到文本的信息不一定是简单的文本类型,也可能是JS对象简谱(JavaScript ObjectNotation,JSON)格式的文本类型。JSON是一种独立于编程语言的通用数据交换格式,可满足嵌入式设备数据量少的通信需求 6 在Python中,开发者可以使用内置的JSON模块来处理JSON格式的数据。当从网页请求并得到JSON格式的数据后,开发者可以使用JSON模块中的loads()函数将JSON格式的字符串转换成Python中的数据类型。假设从某个网站获取了JSON数据并存储在 response 变量中,其代码如图2 所示。当得到能够直接处理的文本后,开发者可以通过文本清洗、分词、词干

16、的提取、去除停用词、文本的向量化、文本分类和聚类等方法 7 获取文本中的有用数据,为后续的数据分析奠定基础。#导入Python 内置的 json 模块import json#从HTTP响应中获取JSON数据并存储在变量 json_data中json_data=response.text#使用json.loadsO方法将JSON数据解析成Python对象,并存储在变量data中data=json.loads(ison_data)图2 解析JSON数据的代码示例3.3.2图片格式有时网络中的文本信息是通过图片来表示的,开发者无法直接获取其中的文本信息,但可在获取图片后通过图像识别技术将其中的文本提

17、取出来,再按照文本格式的数据处理方式进行处理。图片本质上均由二进制码组成,在Python中,开计算机应用文摘符串的模式匹配语言,可以用于检查、查找、替换等各种字符串操作。它既可以使用单个字符串来描述、匹配某个句法规则的字符串,也可以处理各种复杂的字符串模式,具有适应性强、高效性的特点 5,因此常被用于检索、替换符合规则的文本。表1数据解析技术的优缺点优势发者可以请求网页以获取二进制数据,然后将其保存在本地或者在程序中进行处理和显示。图3所示的代码片段展示了如何从网页请求到一张图片,并将其保存为本地文件。url=https:/ open(image.jpg,wb)as f.:f.write(im

18、age_data)图3二进制格式保存文件的代码示例图片转换为文字的过程中需要使用光学字符识别(Optical Character Recognition,OCR)技术。Python中有很多 OCR库,如Tesseract,OCRopus,PyOCR等。其中,Tesseract是最流行的 OCR库之一,由 Google 开发并维护,支持多种语言且可以通过训练来提高识别准确率,图4展示了使用Tesseract库将图片转换为文字的示例代码。#导入pytesseract库和PIL库importpytesseractfromPILimportImage#打开图像,并将其转换为灰度图像image=Imag

19、e.open(image.png).convert(L)#使用pytesseract库识别图像中的文本,将其保存到text变量中text=pytesseract.image_to_string(image)#打印识别出的文本print(text)图4图片转换为文字的代码示例3.4数据存储作为数据采集流程中的重要环节之一,数据存储101缺点(1)在大规模数据提取时比CSS选择器和正则表达式稍慢(2)某些特殊的HTML结构,需要使用多个XPath 表达式进行提取不支持绝对路径(1)语法复杂(2)较难学习(3)可读性差102可对数据进行备份和持久化存储,从而避免丢失或被覆盖。利用数据存储,开发者既能

20、方便地将数据共享给其他人使用,也能将数据提供给机器学习模型进行存储方式优点键值对简单易用,可读性好数据库可以方便地管理和查询数据,支持事务和并发控制Excel文件,CSV文件可以方便地存储和处理表格数据,易于读取和处理图片、视频、音频等二进制格式可以保存到本地文件系统中,可靠性高图5是使用pandas库将采集到的数据保存到Excel文件中的代码示例。importpandas as pd#假设采集到的数据存储在列表中,每个元素是一个字典data=name:Alice,age:25,gender:F,(name:Bob,age:30,gender:M,(name:Charlie,age:35,ge

21、nder:M#将数据存储到pandas数据框架中df=pd.DataFrame(data)#创建一个Excel写入器writer=pd.ExcelWriter(output.xlsx)#将数据框架保存到Excel文件中df.to_excel(writer,index=False)#保存并关闭Excel写入器writer.save()图5数据保存到Excel文件中的代码示例4楼数据采集的加速处理在数据更新频繁、数据量大的场景中,数据采集的速度显得尤为重要,较快的数据采集速度能够确保采集到的数据是最新的,同时能够节省时间和成本。以下是可提高数据采集速度的方法:(1)爬虫代码优化:对代码进行优化,尽

22、量减少资源的消耗和请求的数量,可使用缓存和连接池等技术实现;(2)多线程/多进程采集:通过多线程或多进程的方式进行数据采集,能够在一定程度上提高采集速度;(3)异步I0:异步I0是一种可以在同一线程内处理多个任务的技术,能够有效提高数据采集速度;(4)分布式爬虫:将爬虫程序部署到多台服务器上以同时进行数据采集,可以极大地提高采集速度;(5)反反爬虫技术:若目标网站采取了反爬虫措施,可以采取反反爬虫技术,通过设置请求头、使用代理IP等方式提高数据采集速度。5结束语数据采集是获取和处理大量数据的过程,它包括计算机应用文摘训练和预测,还可以进行数据分析和挖掘,以提高数据的利用价值。数据存储在数据分析

23、、机器学习等领域都有着重要的作用,其中的主要存储方式如表2 所列。表2 存储方式优缺点表不适合存储大量数据部署和维护成本较高不适合存储大量数据不适合存储大规模数据,访问速度较慢数据请求、数据解析、数据处理和数据存储四个重要步骤。其中,数据请求是获取数据的前提;数据解析是将数据转换为计算机可处理的格式;数据处理是清洗、处理和转换数据以满足特定需求;数据存储是将数据存储在合适的地方以便于后续分析和使用。这些步骤都非常重要,开发者需要进行仔细考虑,从而确保数据采集的准确性和可靠性。相较于传统的人工信息采集手段或其他编程语言,基于Python的数据采集具有更高效和更便捷等特点,其拥有的相关库和框架提供

24、了各种方法和工具来实现数据的请求、解析、处理和存储,使数据采集过程变得更加简单和高效。参考文献:1 池毓森.基于Python的网页爬虫技术研究 J.信息与电脑(理论版),2 0 2 1,33(2 1):41-44.2吴伶琳.Python语言程序设计基础 M.大连:大连理工大学出版社,2 0 19.3黑马程序员.Python网络爬虫基础教程M.北京:人民邮电出版社,2 0 2 2.4肖睿,陈磊.Python网络爬虫M.北京:人民邮电出版社,2020.5玲美.正则表达式在Python爬虫中的应用 J.电脑知识与技术,2 0 19,15(2 5):2 53-2 54.6宋岸峰,曾新顺,宁占彬.基于JSON的数据采集通信协议分析与实现 J.电脑编程技巧与维护,2 0 2 2(3):7 5-7 9.7程俊英,基于Python语言的数据分析处理研究 J.电子技术与软件工程,2 0 2 2(15):2 36-2 39.作者简介:石腾兴(2 0 0 2 一),本科,研究方向:数据挖掘。张丽华(197 2 一),硕士,副教授,研究方向:高等教育管理、数据挖掘。林澍(2 0 0 4一),本科,研究方向:数据挖掘。徐沈晖(2 0 0 3一),本科,研究方向:数据挖掘。2023年第2 4期缺点

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服