网页爬虫程序开发经验谈 <转>

http://www.dnbcw.com/biancheng/dreamweaver/flrt75315.html
简介:这是网页爬虫程序开发经验谈的详细页面,介绍了和dreamweaver,网页爬虫有关的知识,加入收藏请按键盘ctrl+D,谢谢大家的观看!要查看更多有关信息,请点击此处

现在是网络的时代,所有数据都可以在互联网上得到,所以能够自动抓取Web数据的网页爬虫程序(又叫网络机器人,Web Robot)就逐渐流行了起来。

开发网页爬虫的过程,需要运用各种Heuristic(摸索体验)的作法:尝试你的想法,修正预期以外的错误(错误通常相当多),一再重复进行,直到网页爬虫可行为止。所以写网页爬虫程序时,是需要一点点耐心的。

一般的状况下,网页爬虫程序会先取一个网页,从此网页取出所有“后续的链接”,然后继续取这些链接的网页。网页的组织方式如果是线性的(例如:每个网页都有“前一笔资料”与“下一笔数据”的超级链接),那么超级链接就不会重复,所以就不需要判断这些链接有无重复。但组织方式只要不是线性的,都需要判断网页超级链接有无重复。

你以为HTTP状态码(status code)是代表正常的200,就表示能够顺利取网页吗?那可不一定,我发现有些服务器会限制同时上线的最大联机数目,超出限制,就会送出“服务器忙碌中”的HTML内容,但HTTP状态码(status code)居然还是使用代表正常的200。会不会遇到这种状况?何时会遇到?很难说得准。如果你想预防这种问题,可以从判断取内容的checksum有无重复来下手。

和 "网页爬虫程序开发经验谈" 有关的编程小帖士:

strong>Locale.Languages.ICELANDIC
表示冰岛语。

语法

public static final int ICELANDIC;

为了防堵网页爬虫,有些网站会限制来自同一个IP的请求频率。当频率超过限制,就会对此IP联机请求进行屏蔽,客户端最后会Timeout,联机失败。所以,当你遇到联机失败的状况,请先更换成新的IP,以确定服务器是否真的挂了,或者只是你的IP被封锁了。如果确定IP被封锁,你可以采用两种策略:(1)随时动态更换IP;或者(2)调节网页爬虫的请求频率。
如果你的计算机上同时有两三个IP,你当然可以在这些IP之间轮替更换,但这样其实帮助不大,因为IP被封锁通常会维持好一段时间,轮完第三个IP之后,恐怕第一个IP也还没被服务器从黑名单中去除。如果你要动态更换IP,最好改用ADSL拨号网络,因为ISP拥有大量的IP,会分配到和之前相同的IP机率很低。一旦你发现目前的IP被封锁,便可以立刻呼叫相关的API将网络断线并重新拨号,取得新的IP继续执行。

如果你不知道该如何呼叫拨号API,或者根本没有拨号网络,那么你只好降低网页爬虫发出请求的频率。频率太低,取得数据的速度太慢;频率太高,很快就会被服务器封锁。如何调整出一个理想值,通常需要测试好一阵子。

  对网页资料的加工处理方式,通常是先将超级链接更新到本地文件,再提取重要数据保存到其他地方。更新超级链接其实满容易的,不容易出错,但“提取重要数据”就可能会遇到相当多问题,值得进一步探讨。

  通过网页爬虫程序取的网页数据,通常需要经过加工处理。因此建议你不要一边取网页,一边加工处理,最好等网页全部取之后,再进行数据提取。为了避免URL名称不适合用来当成档名(例如Windows中不能用“con”当文件名),我习惯使用数字序号当文件名,然后再建立一个URL和数字序号的对照表(可以加上超级链接,以方便取用)。

在提取数据前,你需要先花一点时间研究出这些网页的HTML模板,接着你就可以取出特定tag的element,或者“以特定字符串为识别”的数据。我的经验是,光看几个HTML内容,仍不足以推测出完整的模板,有些状况可能是一百个或一千个网页才发生一次(更不用说还有一些是网站本身建构时的疏失)。因此,最好能先写一个程序扫描所有取的网页,证实你构想中的HTML模板是正确的,然后才开始进行数据提取。

在研究网页模板时,如果发现网页内出现JavaScript,你应该判断是否可以对它置之不理。因为许多网页的JavaScript程序代码是用来处理网页互动,和我们所关心的网页内容无关,可以不予理会。但如果遇到和数据相关的JavaScript程序代码(会产生HTTP请求),就必须特别注意。

你可以动用外部的JavaScript Engine(例如Rhino)来处理JavaScript程序代码,但是对网页爬虫程序来说,大多数的时候,其实没有必要这么做。你可以先阅读理解这些JavaScript程序代码,知道这段程序的目的是发出什么HTTP请求,就可以让网页爬虫自行模拟这样的HTTP请求。

当你的计算机跑着网页爬虫程序时,只要有预期以外的事情发生(例如格式不对、网站不通),就需要人的介入。尤其前几个小时是重要的观察期,这个时候最好乖乖地坐在计算机前,当出状况时,网页爬虫可以发出声音提醒我们进行处理。

我一直觉得,开发网页爬虫是相当实用、有趣、需要技巧的,且网页爬虫程序通常不大,所以很适合当作“下班后的自我挑战”,或是老师留给学生当作业。如果你没写过网页爬虫程序,我建议你马上试试看。
什么是网络爬虫 又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫可以根据指定的规则,从互联网上下载网页、图片、视频等内容,并抽取其中的有用信息进行处理。网络爬虫的工作流程包括获取网页源代码、解析网页内容、存储数据等步骤。根据其目的和工作方式的不同,网络爬虫可以分为多种类型。常见的网络爬虫包括通用爬虫、聚焦爬虫、增量式爬虫等。 阅读详情

相关推荐

Python网络爬虫的设计与实现研究

摘要:随着互联网技术的快速发展,网络爬虫作为获取互联网信息的重要工具,其在数据分析、数据挖掘、自然语言处理等领域的应用越来越广泛。本文首先对网络爬虫的基本原理进行了介绍,然后详细阐述了基于Python的网络爬虫设计与实现过程,包括爬虫架构的选择、网页抓取、数据解析、数据存储等方面。URL管理器负责维护一个待爬取的URL队列,网页下载器负责从URL队列中取出URL并下载对应的网页内容,网页解析器负责对下载的网页内容进行解析和提取所需信息,数据输出器负责将提取的信息以指定格式输出。关键词:Python;

铭渊老黄 2560

简单的爬虫程序(详解)

简单的爬虫小程序,urllib的基本使用,urllib发送get请求

m0_67093160的博客 4072

Python爬虫开发实战经验

如果你有python基础,又想学习网络技术,不妨来瞅一瞅这本书吧! epub版本,可以转其他类型例如:PDF等

Python爬虫——简单网页抓取(实战案例)小白篇

在着手写爬虫抓取网页之前,要先把其需要的知识线路理清楚。 首先:了解相关的Http协议知识; 其次:熟悉Urllib、Requests库; 再者:开发工具的掌握 PyCharm、Fiddler; 最后:网页爬取案例;

m0_74942241的博客 2万+

Python简单网页爬虫示例

利用Python实现了网页爬虫简单示例,包括下载图片、下载题目和获取大学排名3个例子,用到的库有bs4库和requests库

船舶轨迹预测中的5个常见坑:基于LSTM单步预测的避坑实践

本文针对船舶轨迹预测中LSTM单步预测的常见问题,系统总结了五个典型陷阱及避坑实践。重点分析了如何正确处理AIS数据的非均匀采样与清洗、对航向角进行周期性编码、采用轨迹级归一化策略、缓解单步滚动预测的误差累积,并设计贴合业务的评估指标。这些实践能有效提升预测模型的准确性与实用性。

cnn8visionary的博客 631

一篇文章带你入门爬虫并编写自己的第一个爬虫程序

本文介绍了爬虫的基本概念、基本过程,并详细地讲解了一个爬虫程序的构思思路与代码实现,旨在带领读者入门爬虫并编写自己的第一个爬虫程序。

2301_79959126的博客 3656

Argoverse轨迹预测实战:从数据加载到地图API应用全解析

本文详细解析了Argoverse数据集在轨迹预测中的应用,从数据加载到地图API的实战技巧全涵盖。通过具体代码示例展示如何高效处理轨迹数据、实现可视化及基础预测模型,帮助开发者快速掌握自动驾驶轨迹预测的核心技术。特别介绍了Argoverse地图API的深度应用和性能优化经验。

weixin_29182481的博客 241

Python网络爬虫:15个高效爬虫开发技巧

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。************************************************### Python网络爬虫:15个高效爬虫开发技巧。

m0_62283350的博客 2584

vue 插件vue-awesome-swiper实现 三张图片,左右两边显示一半的效果的示例

希望我的愚见能够帮助你哦~,若有不足之处,还望指出,你们有更好的解决方法,欢迎大家在评论区下方留言支持,大家一起相互学习参考呀~

weixin_50450473的博客 3245

Win11注册表没有MMC的解决方法

本文详细介绍了在Win11系统中解决注册表没有MMC项的问题的方法。通过创建并导入注册表修复文件,我们可以成功地在注册表中添加缺失的MMC项。在操作过程中,需要注意备份注册表、以管理员身份运行工具以及系统更新等事项。希望本文能够帮助到遇到类似问题的用户,提高系统管理的效率和便捷性。如果你还有其他关于Windows操作系统的问题或疑问,欢迎随时提问并寻求帮助。

nntxthml的博客 1552

网络爬虫解析

网络爬虫(也称为网页蜘蛛、网络机器人)是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫可以用于从网站提取数据,例如监测社交媒体平台上的活动,或者从网上收集新闻和文章。它们也可以用于搜索引擎,如Google和Bing,来抓取和索引网页,以便在用户进行搜索时提供结果。URL通常由多个部分组成,包括协议类型(如HTTP、HTTPS)、主机名(域名或IP地址)、路径(资源在主机上的位置)以及可选的查询参数(用于传递额外的信息)。通过URL,用户可以方便地访问和定位到特定的网络资源。

2301_82032652的博客 2630

【git】win 10 / win 11:git 首次拉取云效平台代码详细教程

git 首次拉取云效平台代码详细教程:Git 生成 SSH 公钥、云效工作台添加 SSH 公钥、git 使用 SSH / HTTP 链接拉取云效代码

顾三殇 —— 博客空间(软件测试) 4218

网络爬虫是什么

作为一家大数据公司的运营小编,经常会有人问我“诶?你说的爬虫是什么呀”“爬虫的用途是什么呀?”“你们公司是卖爬虫的吗,有蜥蜴吗?”等一系列问题,面对这些问题,小编是绝望的。那么爬虫到底是什么呢? 一、爬虫是什么 以下是百度百科上对于网络爬虫的定义: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或

u011231755的博客 5万+

BUG调试案例六:RK3568+国产YT8531网络PING调试案例

这次调试过程让我对后续类似问题的应对更加有信心。如果芯片在其他项目中已被验证可用,那么在我们的设计中原则上也应该能够正常工作。如果出现异常,就必须坚持追根溯源,找出具体原因和根本问题。每一次问题的解决,都是一次深入理解系统和提升能力的机会 —— 在不断探索和学习中,也在持续成长。

案例文章,高速信号 2332

CAN(2)-GD32

GD32中CAN的特征。

小柚子的博客 553

网络爬虫的基本原理及抓取静态网页详解

网络爬虫(又称为网页蜘蛛,网络机器人)是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫可以从一个或若干初始网页的URL开始,通过抓取网页上的链接地址,自动地访问网页、提取数据,实现对整个网站内容的爬取。网络爬虫主要用于搜索引擎、数据挖掘、信息提取、网页抓取等应用,是网络数据采集的重要工具。网络爬虫的技术实现涉及到多个领域的知识,包括计算机网络、数据挖掘、自然语言处理等。网络爬虫的分类有多种,根据其爬取范围可以分为通用爬虫和聚焦爬虫。

2303_76177437的博客 3378

AutoSAR系列讲解(实践篇)12.1-Diagnostics简介

主要概括性的讲解了诊断协议UDS和AutoSAR的诊断架构

雪云飞星的博客 1万+

网络爬虫技术

本文介绍了网络爬虫的基础概念与应用。主要内容包括:1)爬虫定义与分类,分为通用、聚焦、增量式和深层网络爬虫四种类型;2)核心工作原理,涉及HTTP请求过程、响应结构和网页基础;3)常见爬取策略如宽度优先(BFS)和深度优先(DFS)遍历;4)Python中Requests库的使用方法,包括请求发送、响应处理和异常捕获。文章通过百度网页爬取实例,展示了网络爬虫从发送请求到获取响应的完整流程,为初学者提供了网络数据采集的基础知识框架。

2302_78993464的博客 2958

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

网络爬虫详解

网络爬虫(web crawler,又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 产生背景 随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南

顺其自然~专栏 9168

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

终于有人把网络爬虫讲明白了

摘要:Python网络爬虫的详尽解释。导读:网络爬虫也叫做网络机器人,可以代替人们自动地在互联网中进行数据信息的采集与整理。在大数据时代,信息的采集是一项重要的工作,如果...

苏克的博客 4334

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python网络爬虫爬取静态网页

网络爬虫又称网页蜘蛛、网络机器人,是一种按照一定的规则、自动请求万维网网站并提取网络数据的程序或脚本。如果说网络像一张网,那么爬就是网上的一只小电子,在网上爬行的过程中遇到了数据,就把它爬取下来。网络爬虫的常用功能:如图所示。获取大量数据,用来做数据分析公司项目的测试数据,公司业务所需数据Python做爬虫优势1、Python :请求模块、解析模块丰富成熟,强大的Scrapy网络爬虫框架2、PHP :对多线程、异步支持不太好3、JAVA:代码笨重,代码量大。

m0_74198026的博客 3272

爬虫——网页蜘蛛

大数据下的数据筛取技术

码刀攻城 1240

转:使用Java实现网络爬虫

网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。网络蜘蛛是通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取 网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直...

309

网络爬虫基础知识与应用指南

网络爬虫(Crawler),又被称为网页蜘蛛(Spider)、网络机器人,是一种按照一定规则,自动抓取万维网信息的程序或脚本。常见的应用案例包括 Google、百度、Bing 等搜索引擎,它们通过爬虫技术从互联网上获取海量信息并建立索引。

wsygjbr的博客 2337
上一篇: google maps on rails
下一篇: 用 python 做简单的网页爬虫程序<转>
wavee
博客等级 码龄22年 0粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值