php 爬虫抓取网页数据(2021-10-09爬虫获取网页爬虫后的接下来分析)
优采云 发布时间: 2022-01-27 11:15php 爬虫抓取网页数据(2021-10-09爬虫获取网页爬虫后的接下来分析)
2021-10-09爬虫概述
我们可以把互联网比作一个大的网络,爬虫(即网络爬虫)是在网络上爬行的蜘蛛。将网络的节点比作网页,爬取它相当于访问该页面并获取其信息。节点之间的连接可以比作网页与网页之间的链接关系,这样蜘蛛经过一个节点后,可以继续沿着节点连接爬行到达下一个节点,即继续通过一个网页获取后续网页,使得整个网页的节点都可以被蜘蛛爬取,并且可以抓取到网站的数据。
获取网页
爬虫要做的第一个工作就是获取网页,这里是网页的源代码。我们不可能去网页复制源代码。在 Python 中,我们有很多第三方库来帮助我们解决这些繁琐的问题。
行
得到网页的源代码后,接下来就是分析网页的源代码,从中提取出我们想要的数据。首先,最常用的方法是使用正则表达式提取,这是一种通用的方法,但是在构造正则表达式时比较复杂且容易出错。(我们之前也说过)
这时候就需要一些Python第三方库来解析数据,比如Beautiful Soup、pyquery、lxml等。提取信息是爬虫非常重要的一个环节,它可以把杂乱的数据整理好,方便我们后面处理和分析数据。
保存数据
提取信息后,我们一般将提取的数据保存在某处以备后用。这里的保存有多种形式,比如简单的保存为TXT文本或者JSON文本,或者保存到数据库,比如MySQL和MongoDB,或者保存到远程服务器,比如使用SFTP操作。
爬虫的基本原理和思路是这样的。我们在自己搭建框架的时候,通常需要这样的思考。
静态和动态网页
静态网页通过最简单的 HTML 代码构建,并通过一些服务器实现。它们虽然简单,但也有可维护性差、灵活性差等缺点。因此,动态网页应运而生,它可以动态解析URL中参数的变化,关联数据库,动态呈现不同的页面内容,非常灵活多变。我们现在遇到的大部分网站都是动态网站,它们不再是简单的HTML,而是可能用JSP、PHP、Python等语言编写,比这些语言更强大、更丰富静态网页。太多了。
对话
对话,其本义是指一系列有始有终的动作/信息。在 Web 中,会话对象用于存储特定用户会话所需的属性和配置信息。这样,存储在会话对象中的变量在用户在应用程序的网页之间跳转时不会丢失,而是会在整个用户会话期间持续存在。当用户从应用程序请求网页时,如果用户还没有会话,Web 服务器会自动创建会话对象。当会话过期或被放弃时,服务器将终止会话。
饼干
我相信每个人都有这个概念的经验。我们在登录网站的时候,经常会被提醒保存密码,下次登录就不需要输入自己的密码了。这就是cookies和sessions的使用。
演戏
前方高能
在爬取的过程中,我们经常会遇到这样的情况。最初,爬虫正常运行,正常抓取数据。一切看起来都那么好。但是,一杯茶可能会出现错误,例如403 Forbidden。这时候打开网页,可能会看到“你的IP访问频率太高”这样的提示。原因是网站采取了一些反爬虫措施。例如,服务器会检测单位时间内某个IP的请求数。如果超过这个阈值,会直接拒绝服务并返回一些错误信息。这种情况可以称为IP阻塞。这个时候天冷,电脑IP被封了很麻烦。通常,我们在编写一些高级爬虫时,需要使用代理IP,或者延迟访问。
这里建议大家不要随意复制和运行一些网上的爬虫项目。也许你能看懂别人的代码。如果不添加延迟或者其他反爬措施,对你来说是不安全的,但是网站也是一种负担!
基本的
通过伪装自己的IP,这次我们设置了代理服务器。访问时,我们不直接通过web访问,代理服务器将其发送给web服务器,然后代理服务器将web服务器返回的响应转发给本机。IP是否被识别并不重要,因为我们没有使用我们自己的IP。
注意
在 Internet 上使用免费代理:最好使用高安全性代理。此外,可用的代理并不多。您需要在使用它们之前过滤可用的代理,或者您可以进一步维护一个代理池。
网上有很多代理可以收费使用,而且质量比免费代理好很多。
分类:
技术要点:
相关文章: