admin 管理员组文章数量: 1086019
2024年1月11日发(作者:抽象类可以有私有方法吗)
ELECTRONICS WORLD・探索与观察基于Python的网络爬虫技术的研究桂林电子科技大学 李 彦本文介绍了Python技术的网络爬虫系统的特点和工作原理,对网络爬虫的应用逻辑做了详细的介绍,同时,通过对爬虫技术、数据分析在旅游行业的应用的研究,亦为爬虫技术、数据分析在其他行业如商务、医学、教育、科学与工程等各个方面的应用提供有价值的应用参考。网络爬虫(Crawler)作为一种古老的网络技术,它伴随着大数据与人工智能时代的来临而受到越来越多人的重视与青睐。具有足够丰富的功能的Python在网络爬虫技术中脱颖而出。在日常的工作中,给予了强大的数据信息支持技,解决了企业信息采集、市场数据分析、信息自动匹配等问题。通俗的讲爬虫就是把你手动打开窗口、输入数据等等操作用程序代替。用程序替你获取你想要的信息。爬虫的关键是:“匹配”“采集”“自动化”。1 网络爬虫技术的应用场景话说是因为有了web才有了爬虫,目前市面上的爬虫技术应用都是围绕着web网页进行的。现实生活中很多网络信息检索、存储之中都会通过网络爬虫技术来实现网页中数据爬取、分析和采集。比如人们在生活场景中常用到搜索引擎进行信息查阅,包括谷歌、百度、搜狗的等,都运用到了搜索技术;网络购物、互联网电商平台、线上旅游OTA平台等,要用到爬虫技术获取自身想要的网络数据信息从而实现数据分析的需求的场景,该技术得到了广泛的应用。2 Python语言的介绍Python语言是高级语言,由Guido van Russum在阿姆斯特丹于1989年的圣诞节期间首次被设计完成,1991年第一次公开发行文本。它是一种解释性语言,你可以用它来创建网页应用、游戏和搜索引擎。多个领域都会见到Python的身影,如:云计算、web开发、科学运算、人工智能、金融量化交易等。同时,该语言具有独特的语法结构,拥有较强的可读性,具备互交性、结构简单、代码清晰、可移植、源代码已维护、可嵌入以及可拓展等特点,适合完成高层人物,几乎可以再所有操作系统中运行。若要使用Python语言来实现网络爬虫技术,应当充分利用Python语言简洁以及资源丰富的优势。如在研发网络爬虫系统的获取网络数据信息时,无需较为复杂的代码编辑器、调试器等工具,可使用Eclipse通过插件作为Python语言的开发工具。3 Python语言编写网络爬虫系统的优势软件质量高。秉承了简洁、清晰的特点,拥有高度一致的编程模式,简单易学,容易上手。设计风格从始至终不做改变,可保证开发者在统一规则内设计出规范性的代码。如若出现错误代码,Python提供了合理的“退出机制”。开发速度快。Python不需要复杂的IDE,它可以简单到只用一个文本编辑器,对多数中小型应用进行开发。无需编译也无需调试,往往只需要几十行代码就可以开发出需要几百行C代码才能实现的功能。功能强大。为了实现更多的功能,Python内置了许多预编码的库工具。ScraPy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可运用到信息搜索、数据识别、存储历史数据等一系列程序中。同时,Python还有很多强大的框架帮助编程者实现更多功能。例如:TruboGears、Django、Pylons等。易于扩展。可通过C或者C++编写的模块进行拓展,也十分擅长做文本处理和字符串处理。4 基于Python网络爬虫技术的数据爬取研究通过获取网络数据的方式有两种:方式1:发出请求--->匹配网页代码--->解析成页面。方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中。爬虫要做的就是方式2;爬虫主要步骤:(1)分析目标网站,明晰目标网站结构,理清关键数据位置。(2)发起请求:使用http库或浏览器模拟工具向目标站点发起请求,即发送一个Request。(3)获取响应内容。如果得到了一个Response,Response包含:html,json,图片,视频等。说明浏览器能正常响应。(4)解析内容:解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,lxml等。解析json数据:json模块;通过解析html、json或其他数据,获得想要的关键数据信息,或者是下一个待爬取的URL地址。(5)保存数据。虽然网络爬虫可以方便地为人们获取感性区的信息数据,但在进行网络爬虫时,亦应了解网络爬虫引发的问题。网络爬虫的“性能”骚扰:web默认接受人类访问,由于网络爬虫的频繁访问会给服务器带来巨大的额资源开销。网络爬虫的法律风险:服务器上的数据有产权归属,网络爬虫获取数据牟利将带来法律风险。网络爬虫的隐私泄露:网络爬虫可能具备突破简单控制访问的能力,获取被保护的数据从而泄露个人隐私。•
39
•
ELECTRONICS WORLD・探索与观察5 Python网络爬虫应用关键技术页面请求:网络爬虫的第一个实现步骤就是模拟浏览器向目标网站的服务器发送请求,以获得页面的响应数据。目标网站的web可分为动态页面和静态页面两种,二者是存在区别的。在静态页面程序里,客户端通过网络,将web浏览器链接在服务器上,利用HTTP协议发起一个与需求一致的请求,将需求准确的告知服务区,web服务器接到请求后,服务器将会根据接收到的需求信息,从文件系统(存放了所有静态页面的磁盘)取出内容。之后通过web服务器返回给客户端,客户端接收到内容之后经过浏览器渲染解析,得到显示的效果。为了让静态web页面显示更加好看,使用javascript/VBScript/ajax.但是这些特效都是在客户端上借助于浏览器展现给用户的,所以在服务器上本身并没有任何的变化。静态页web的缺点是:因JS的大量使用,浏览器页面必须打开,大量的内存被占用,虽然减轻了服务端的压力,但客户端的压力加重了。动态web的不同之处在于所有的请求会先经过一个WEB Server来处理,虽然程序仍旧会用客户端和服务端,但可以通过网络连接到服务器上,使用HTTP协议发起请求,一定程度上减轻了服务端与客户端的压力。针对不同页面Python语言有相应的方便简单的页面获取库,例如requests库及Selenium库,而对于比较大型的网站,则可以使用scryapy开源架构。6 爬虫系统的功能应用举例旅游电商数据采集应用场景为例,基于爬虫的一日游与多日游数据分析系统需要实现以下功能:数据爬取功能:实现从主流旅游信息平台爬取多区域多省份的一日游/多日游项目的产品信息,信息内容包括地点名称,价格区间,店铺名称,产品销量,产品具体行程,用户评分。爬取过程应实现自动化的入口网址记录,产品详情页巡游,停止条件判断,关键信息定位及提取、异常处理及容错。数据清洗功能:包括处理缺失数据、添加默认值、删除不完整的行、删除不完整的列、规范化数据类型、必要的转换、重命名列名等。例如对于一日游与多日游源数据中的行程信息,需要对其进行二次转换,将行程数据中的地点名称进行分割。数据存储功能:实现对已清洗数据的格式化、持久化存储存储,考虑到系统的稳定性及对后续业务的支持,系统存储的方式包括文本文件存储、关系型数据库存储。数据呈现功能:将分析结果以直观、清晰的可视化图像呈现给使用者。•
40
•交互功能:实现使用者与系统的交互,如对一日游与多日游数据种类的选择,地区数据的选择等。以马蜂窝网站获取一日游数据为例,整个系统的业务逻辑为:数据爬取--数据清洗--数据存储--数据分析--分析结果可视化。因此,整个系统将划分为以下多个模块来实现,如图1所示红色虚线内所示。图1 系统架构图系统爬取马蜂窝所有目的地的区域编码思路如下:(1)向马蜂窝目的地首页'/mdd/'发送请求,获取页面响应html源码。(2)在响应的页面html源码中,找到class属性为'hot-list
clearfix'的
版权声明:本文标题:基于Python的网络爬虫技术的研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1704950495a467767.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
更多相关文章
windows C语言读串口数据
(1)这种方式真的很奇怪,乍一看咋都不像打开串口的,但是真的可以打开。不过在这段代码里并没有配置串口,所以必须借助串口助手才可以&
CDO(气象数据处理软件)安装的坑总结
由于科研需要,我用到的是CMIP6数据,需要对数据进行合并、插值等操作,用到的模式很多,在python上处理不太方便,所以就用cd
Oracle数据库分别在WindowsLinux环境下普通数据泵方式导入导出示例
1 Linux普通导出入1.1 终端下导出 exp userpwd192.168.100.100dbPro owner(mm_app,mm_sys) fileorabackupdb_201408131200.dmp log or
Python远程获取Windows主机信息
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 以下文章来源于娜璋AI安全之家,作者 Eastmount 获取Windows主机信息 WMI(
星光 SaaS 伙伴汉得信息:企业级 SaaS 能力构建,云原生赋能数字化创新
文章目录 前言一、华为云助力中小企业快成长二、星光 SaaS 伙伴-汉得信息2.1、企业基本介绍2.2、企业使命2.3、企业优势 三、数智时代特点3.1、消费互联网的拐点3.2、产业互联网的兴起 四、数智企业演进历程4.1、回首过去4.2、
超强干货之---Python-数据爬取(爬虫)
~~~理性爬取~~~ 杜绝从入门到入狱 1.简要描述一下Python爬虫的工作原理,并介绍几个常用的Python爬虫库。 Python爬虫的工作原理 发送请求:爬虫向目标网站发送HTTP请求,通常使用GET请求来获取网页内容。解析响应:接
30个高质量的数据集网站,你必须要试试!
点击上方“Python人工智能编程”,选择“星标”公众号超级无敌干货,第一时间送达!!!一、数据查询网站 1、企业产生的用户数据
【愚公系列】《Python网络爬虫从入门到精通》015-案例:爬取豆瓣电影Top 250
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CT
Selenium如何让启动的浏览器和手动启动的浏览器信息一致
最近在做爬虫,主要使用过了selenium包,但是发现selenium包直接调用本地浏览器,启动的是一个全新的(与手动打开的不一致)
如何利用 Playwright 对已打开的浏览器进行爬虫
之前写过一篇关于如何利用 Selenium 操作已经打开的浏览器进行爬虫的文章 如何利用 Selenium 对已打开的浏览器进行爬虫! 最近发现很多人都开始摒弃 Selenium,全面拥抱 P
Unity学习辅助篇之Unity打包成安卓Android应用后,如何查看对应的版本信息(api版本,包名等,无需AndroidSutdio版),方便上架应用时的查看
目录 一、前言 二、查看方式 1.1 利用压缩软件 2.2 利用反编译文件 三、查看文件 一、前言 在通过谷歌上架unity应用时,需满足谷歌上架的要求。我们打包成Google版本,游戏
《CWAP-404》,第4章:802.11 MAC 帧(4.1,802.11 帧类型,控制帧和数据帧)
控制帧 控制帧(Control frames)用于控制其他帧的传输。与管理帧(Management frames)不同,它们没有
Windows与网络基础-12-13-NTFS文件及文件夹权限
目录 一 、NTFS权限 1.1 NTFS文件系统 1.2 Windows和Linux文件系统 1.3 U盘格式转换FAT->NTFS 二 、文件权限 2.2 文件权限配置实例 三、 文件夹的权限 3.1 文件夹权限配置
微信QQ网络上传文件很慢怎么办?
文章目录 前言解决方法 前言 问题是这样的,因为网店里上传图片到图片空间准备上货,但是发现图片上传不上去,问了客服说我命名啥啥的问题,但是之前都能传上
网络卡顿怎么办
前言 网络卡顿是常见的网络障碍之一,以下原因都有可能导致网络卡顿: 1、带宽不足,应用所需带宽大,如:1M的带宽&#x
100天精通Python(爬虫篇)——第118天:selenium自动化操作浏览器基础大总结
文章目录 一、Selenium框架环境搭建1. 下载模块2. 安装浏览器驱动WebDriver二、基础操作1. 打开浏览器2. 无界面模式3. 元素定位4. 元素操作5. 前进后退6. 执行js7.页面等待隐式等待(常用)显式等待(了解)三
Linux网络之数据链路层协议
目录 数据链路层 MAC地址与IP地址 数据帧 ARP协议 NAT技术 代理服务器 正向代理 反向代理 上期我们学习了网络层中的相关协议,为IP协议。IP协议通过报头中的目的IP地址告知了数据最
网络层之IP协议
在讨论传输层时, 我们都只讨论了发送方和接收方的问题, 而没有讨论中间的网络形态的问题. 也就是数据包如何从主机传送到主机的? 如图, 主机B发送数据到主机C, 发送报文需要进行路径选择, 主机B-> F-> G-> H
二、修改虚拟机 windows网络配置,ping通(本机和外网)
一、虚拟机的网络配置 ①:在编辑里找到虚拟网络编辑器,更改设置 ②:编辑子网IP为:192.168.1.0 子网掩码为&#x
联想小新16Pro待机或者关机后无网络问题(WiFi显示不出来)
问题描述:最近联想小新16Pro息屏几个小时后打开网络没有了,点击网络后网卡也没有选项,折腾一番后发现是硬件问题,静电导致的网卡无法识别
发表评论