当前位置: 首页 > 后端技术 > Python

02-认识python爬虫

时间:2023-03-26 14:36:42 Python

学习目的了解爬虫,爬虫的由来;什么是爬虫术语:网络爬虫(又称网络蜘蛛、网络机器人)网络爬虫是一种按照一定规则自动爬取万维网上信息的程序或脚本。爬虫起源(背景)随着网络的飞速发展,万维网已经成为大量信息的载体,如何有效地提取和利用这些信息成为一个巨大的挑战;搜索引擎包括雅虎、谷歌、百度等,作为人们检索信息的辅助工具,成为用户访问万维网的入口和向导。网络爬虫是搜索引擎系统中非常重要的一部分。它负责从互联网上收集网页并收集信息。这些网页信息用于建立索引,为搜索引擎提供支持。它决定了整个引擎系统的内容是否丰富,信息是否实时,所以它的性能直接影响到搜索引擎的效果。网络爬虫的优劣很大程度上反映了搜索引擎的优劣。如果你不相信我,你可以拿一个网站,看看有多少搜索引擎收录了它。爬虫的威力基本上和搜索引擎的好坏成正比。搜索引擎工作原理第一步:爬行网页(crawlers)搜索引擎通过特定的正则软件跟踪网页的链接,从一个链接爬到另一个链接,就像蜘蛛在蜘蛛网上爬行一样,所以称为“蜘蛛”也被称为“机器人”。搜索引擎蜘蛛在爬行过程中输入了一定的规则,需要遵循一些命令或者文件内容。Robots协议(又称爬虫协议、机器人协议等)的全称是“RobotsExclusionProtocol”。网站通过Robots协议告诉搜索引擎哪些页面可以抓取哪些页面不能抓取https://www.taobao.com/robots.txthttp://www.qq.com/robots.txthttps://www.taobao.com/robots.txt第二步:数据存储搜索引擎通过蜘蛛跟踪链接抓取网页,并将抓取的数据存储在原始页面数据库中。页面数据与用户浏览器获取的HTML完全一致。搜索引擎蜘蛛在抓取页面时也会做一些重复内容检测。一旦他们在权重较低的网站上遇到大量抄袭、收集或复制的内容,他们很可能会停止爬取。第三步:对搜索引擎从蜘蛛抓取回来的页面进行预处理,进行预处理的各个步骤。1.提取文本2.中文分词3.去除停用词4.去除噪音(搜索引擎需要识别并去除这些噪音,如版权声明文字、导航栏、广告等)计算8.特殊文件处理In除了HTML文件,搜索引擎通常可以抓取和索引各种基于文本的文件类型,例如PDF、Word、WPS、XLS、PPT、TXT文件等,我们在搜索结果中也经常看到这些文件类型。但是,搜索引擎还不能处理图片、视频、Flash等非文本内容,也不能执行脚本和程序。第四步:排名,提供检索服务然而,这些通用搜索引擎也有一定的局限性,例如:(1)不同领域和背景的用户往往有不同的检索目的和需求,通用搜索引擎返回的结果包含一个大量用户不关心的页面。(2)通用搜索引擎的目标是尽可能覆盖网络,有限的搜索引擎服务器资源和无限的网络数据资源之间的矛盾将进一步加深。(3)随着万维网上数据形式的丰富和网络技术的不断发展,出现了大量图片、数据库、音频、视频多媒体等不同数据。对于这些信息内容密集、结构一定的数据,一般的搜索引擎往往无能为力,表现不佳。发现和获取。(4)通用搜索引擎大多提供基于关键词的检索,难以支持基于语义信息的查询。为了解决上述问题,有针对性地爬取相关网络资源的聚焦爬虫应运而生。聚焦爬虫是一种自动下载网页的程序。它根据既定的爬行目标,有选择地访问万维网上的网页和相关链接,以获取所需的信息。与通用网络爬虫不同,聚焦爬虫不追求覆盖面大,而是以爬取与特定主题相关的网页为目标,为面向主题的用户查询准备数据资源。重点介绍爬虫的工作原理和关键技术概述网络爬虫是一种自动提取网页的程序。它从万维网上下载网页供搜索引擎使用,是搜索引擎的重要组成部分。传统爬虫从一个或几个初始网页的URL开始,获取初始网页上的URL,在爬取网页的过程中不断从当前页面提取新的URL放入队列,直到系统出现某个停止条件被满足。聚焦爬虫的工作流程比较复杂。它需要根据一定的网页分析算法,过滤掉与主题无关的链接,保留有用的链接,放入URL队列中等待抓取。然后,它会根据一定的搜索策略,从队列中选择下一个要抓取的网页的URL,重复上述过程,直到达到系统的某个条件时停止。此外,所有爬虫爬取的网页都会被系统存储、分析、过滤、索引,以供以后查询和检索;对于专注的爬虫,这个过程中得到的分析结果也可能对以后的爬虫过程给予反馈和指导。与一般的网络爬虫相比,聚焦爬虫仍然需要解决三个主要问题:(1)爬虫目标的描述或定义;(2)网页或数据的分析、过滤;(3)URL的搜索策略。抓取目标的描述和定义是决定如何制定网页分析算法和URL搜索策略的基础。网页分析算法和候选URL排序算法是决定搜索引擎提供的服务形式和爬虫网络爬行行为的关键。这两部分的算法是密切相关的。网络爬虫的发展趋势随着AJAX/Web2.0的流行,如何抓取AJAX等动态页面成为搜索引擎亟待解决的问题。如果搜索引擎仍然使用“抓取”机制,则无法抓取AJAX页面的有效数据。对于AJAX这样的技术,需要的爬虫引擎必须是基于驱动的。但是,如果要实现事件驱动,首先需要解决以下几个问题:第一:JavaScript的交互分析和解释;第二:DOM事件的处理和解释;第三:提取动态DOM内容语义。爬虫发展的几个阶段(博士论文复印件)第一阶段可以说是早期的爬虫,由几个斯坦福学生完成。那时候互联网基本完全开放,人流量是主流;第二阶段是分布式爬虫,但是爬虫面临的新问题是数据量越来越大。传统的爬虫已经无法解决抓取所有数据的问题。需要更多的爬虫,所以调度问题就出现了;第三阶段是暗网爬虫。这时候新的问题就是数据之间的联系越来越少了。例如,淘宝和评论数据之间的链接很少,因此很难捕获所有这些数据;还有一些数据是需要提交查询词来获取的,比如机票查询,需要通过某种手段去“发现”更多更完整的不在表面上的数据。第四阶段是智能爬虫,这主要是因为爬虫开始面临一个新的问题:社交网络数据的抓取。社交网络给爬虫带来的新挑战包括账户护城河。我们通常称UGC(UserGeneratedContent)来指代用户生成的内容。是web2.0,即数据从单向交互转为双向交互。人们可以与该网站互动,因此会生成一个帐户。每个人都使用该帐户来识别他们的身份并提交数据。这样一来,社交网络就可以通过关闭的账号被用来增加数据抓取的难度,并且可以通过账号发现非人类流量。之前没有account,只能通过cookie和ip。Cookies具有易变性和易变性,长期难以识别一个用户。网络正在走向封闭新浪微博在2012年之前基本上是畅通的,不管你怎么写程序,都不会被封,但是很快,越来越多的网站开始防止竞争对手和爬虫的抢夺,数据逐渐走向封闭,越来越多的人发现很难获得数据。甚至出现了专业的爬虫公司,这在2010年之前是不可想象的。。反爬的方法和杀人的方法差别很大。写一个通用的框架来抓取上百万的网站已经成为历史,或者说已经是一个比较成熟的工作了,也就是说已经有一个比较成熟的框架可以“偷”上百个网站了。墓葬有数千座,但很少有墓葬需要特殊手段。目前市面上比较难抓取的数据有微信公众号、微博、Facebook、ins、淘宝等,具体原因各不相同,但是基本不可能用一个统一的框架来完成,太特别的。如果有一个通用的框架可以解决我提到的网站的爬取,那一定是一个非常震撼的产品。如果有,你一定要告诉我,那我就公开,然后我就转行了。当面临以上三个挑战时,就需要智能爬虫了。智能爬虫就是让爬虫的行为尽可能模仿人类的行为,让反爬策略失效。只有“混在普通人的队伍里”才是安全的。因此,有必要考虑浏览器。许多人在浏览器中编写爬虫。插件里把爬虫写在手机里和路由器里(春节抢票王)。还有一种传统的爬虫,只有读操作,没有写操作。这很容易判断为爬虫。智能爬虫需要有一些自动交互行为。以上就是一些抵抗反爬策略的方法。在商业价值上,是一个能抽象出千万级网站爬取框架的爬虫工程师有价值,还是一个能爬取特定难点网站的爬虫工程师有价值?能用钱买来的、被市场认可的数据,都是那些特别难抓取,抓取成本极高的数据。目前市场上主流的爬虫工程师可以抓取几十万个网站的数据,但是要想有价值,就必须能够抓取到特别困难的数据,才能估出一个好的价格。IT概论感谢您的关注|练习地址:www.520mg.com/it