python爬虫|网络爬虫简介(代码片段)

Tiramisu1104 Tiramisu1104     2023-03-19     647

关键词:

文章目录

Python爬虫|网络爬虫简介

网络爬虫何时有用

理想状态下, 网 络爬虫并不是必须品, 每个网站 都应该提供API, 以结构化的格式共享它们的数据。 然而现实情况中, 虽然一些网站 已经提供了这种API,但是它们通常会限制可以抓 取的数据,以及访问这些数据的频率。

网络爬虫是否合法

  • 网 络爬虫目前还处于早期的蛮荒阶段,“允许哪些行为” 这种基本秩序还处于建设之中。 从目前的实践来看, 如果抓取数据的行为用于个人使用, 则不存ft问题: 而如果数据用于转载, 那么抓取的数据类型就非常关键了。
  • 当抓取的数据是现实生活中的真实数据(比如,营业地址、 电话清单) 时, 是允许转载的。 但是, 如果是原创数据(比如, 意见和评论), 通常就会受到版权限制, 而不能转载。
  • 无论如何, 当你抓取某个网站 的数据时,请记住自己是该网站 的访客,应当约束自己的抓取行为, 否则他们可能会封禁你的 IP , 甚至采取更进一步的法律行动。

背景调研

检查robots.txt

  • 大多数网站 都会定义robots.txt 文件, 这样可以让爬虫了解爬取该网站时存ft哪些限制。 这些限制虽然仅仅作为建议给出, 但是良好的网 络公民都应当遵守 这些限制。检查robots. txt 文件这一宝贵资源可以最小化爬虫被封禁的可能,而且还能发现 和网站 结构相 关的线索。
  • sect ion 2 规定, 无论使用哪种用户代理, 都应该ft两次下载请求之间给出5秒 的抓 取延迟, 我们需要遵从该建议以避免服务器过载。 这里还有一个/trap 链接,用于封禁那些爬取了不允许链接的恶意爬虫。如果你访问了这个链接, 服务器就会封禁你的IP 一分钟!
  • sect ion 3 定义了一个Sitemap 文件,

检查网站地图

网站提供的Sitemap 文件(即网站 地图) 可以帮助爬虫定位网站 最新的内容, 而无须爬取每 一个网页。 网站 地图提供了所有网页的链接,虽然Sitema p文件提供了一种爬取网站 的有效方式, 但是我们仍需对其谨慎处理, 因为该文件经常存ft缺失、 过期或不完整的问题。

估算网站大小

目标网站 的大小会影响我们如何进行爬取,估算网站 大小的一个简便方法是检查Goo g le爬虫的结果,因为Goo gle很可能已经爬取过我们感兴趣的网站 。 我们可以通过Goo gle 搜索的site 关键词过滤域名结果, 从而获取该信息。

识别网站所用技术

构建网站 所使用的技术类型也会对我们如何爬取产生影响。 有一个十 分有 用的工具可以检查网站 构建的技术类型一-builtwith 模块。 该模块的安装 方法如下。

pip install builtwith

寻找网站所有者

对于一些网站 , 我们可能会关心其所有者是谁。 比如, 我们已知网站 的所有者会封禁网 络爬虫, 那么我们最好把下载速度控制得更加保守一些。 为了找到网站 的所有者,我们可以使用WHOIS协议查询域名的注册者是谁。

编写第一个网络爬虫

为了抓取网站 ,我们首先需要下载包含有感兴趣数据的网页, 该过程一般被称为爬取(crawling) 。

3 种爬取网站的常见方法::

  • 爬取网站 地图
  • 遍历每个网页的数据库ID
  • 跟踪网页链接。

下载网页

要想爬取网页,我们首先需要将其下载下来。下面的示例脚本使用Python 的urllib 2 模块下载URL。

import urllib2 

de f downl oad ( url ) : return urllib2 . url。pen ( ur l ) . read () 

当传入URL参数时, 该函数将会下载网页并返回其HTML。 不过, 这个代码片段存在一个问题, 即当下载网页时, 我们可能会遇到一些无法控制的错误, 比如请求的页面可能不存在。

  1. 重试下载

    下载时遇到的错误经常是临时性的, 比如服务器 过载时返回的 503 Ser vice Unavailable错误。

  2. 设置用户代理

如果能使用可辨识的用户代理则 更好, 这样可以避免我们的网 络爬虫碰到一些问题。 此外, 也许是因为曾经 历过质量不佳的Python网 络爬虫造成的服务器过载, 一些网站 还会封 禁这个 默认的用户代理 。

网站地图爬虫

在第一个简单的爬虫中, 我们将使用示例网站 robots. tx t文件中发现 的网站 地图来下载所有网页。 为了解析网站 地图, 我们将会使用一个简单的 正则表达式, 从< loc >标签中提取出URL。

ID遍历爬虫

在爬取网站 时,遍历ID 是一个很便捷的方法,但是和网站 地图爬虫一样, 这种方法也无法保证始终可用。 比如, 一些网站 会检查页面别名是否满足预 期, 如果不是, 则会返回404 Not Found 错误。

链接爬虫

通过跟踪所有链接的方式,我们可以很容易地 下载整个网站 的页面。但是, 这种方法会下载大量我们并不需要的网页。 例如, 我们想要从一个在线论坛 中抓取用户账号详情页,那么此时我们只需要下载账号页, 而 不需要下载讨 论贴的页面。

爬虫简介(代码片段)

...步爬虫的分类通用爬虫专用爬虫(聚焦爬虫)爬虫的结构Python爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有 查看详情

爬虫-scrapy框架简介与入门(代码片段)

Scrapy框架Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。... 查看详情

python网络爬虫(代码片段)

查看详情

爬虫与反爬虫技术简介(代码片段)

互联网的大数据时代的来临,网络爬虫也成了互联网中一个重要行业,它是一种自动获取网页数据信息的爬虫程序,是网站搜索引擎的重要组成部分。通过爬虫,可以获取自己想要的相关数据信息,让爬虫协... 查看详情

第一章网络爬虫简介(代码片段)

本章将介绍如下主题:网络爬虫领域介绍爬虫的合法与非法性对目标网站进行背景调研逐步完善一个高级网络爬虫1.1网络爬虫的使用场景    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的... 查看详情

爬虫大作业(代码片段)

1.爬取豆瓣电影top250。(所有同学不能雷同)2.用python编写爬虫程序,从网络上爬取相关主题的数据。importrequestsfrombs4importBeautifulSoupfromdatetimeimportdatetimeimportreimportpandas#电影简介保存到txt。defwriteNewsDetail(content):f=open(‘wzh.txt‘,‘a 查看详情

网络爬虫简介

...,对速度和效率要求比较高。2,Java:生态圈很完善,是Python爬虫最大的竞争对手。但是Java语言本身很笨重,代码量很大。重构成本比较高,任何修改会导致代码大量改动。爬虫经常要修改采集代码。3,C/C++:运行效率是无敌的... 查看详情

python教程入门学习python爬虫入门学习:网络爬虫是什么(代码片段)

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的... 查看详情

网络爬虫是什么?怎么学python爬虫(代码片段)

网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的... 查看详情

python爬虫一个简单的网络爬虫(代码片段)

网页结构的相似性爬虫的目的,是从网站中 自动化 的 批量 提取数据。首先尝试完成以下操作:从以下链接中提取电影的标题和标题后的年份:https://movie.douban.com/subject/1292052/https://movie.douban.com/subject/1962665/https://movi... 查看详情

python实现简易web爬虫详解(代码片段)

...的爬虫小程序就能够通过这些线不断的搜寻到新的网页。Python作为一种代表简单主义思想的解释型、面向对象、功能强大的高级编程语言。它语法简洁并且具有动态数据类型和高层次的抽象数据结构,这使得它具有良好的跨平台... 查看详情

python爬虫入门(代码片段)

python爬虫入门(8)​Xpath语法入门​Xpath用于在XML文档中搜索内容​html是xml中的一个子集文章目录python爬虫入门(8)一.Xpath简介1.何为Xpath2.Xpath解析原理3.Xpath语法二.示例1.XML2.HTML一.Xpath简介​准备工作:​pipinstalllxml​lxml是一种... 查看详情

python爬虫第一课python爬虫环境与爬虫简介

1.1认识爬虫网络爬虫作为收集互联网数据的一种常用工具,近年来随着互联网的发展而快速崛起。使用网络爬虫爬取网络数据首先需要了解网络爬虫的概念和主要分类,各类爬虫的系统结构,运作方式,常用的爬... 查看详情

python爬虫基础03-requests库(代码片段)

...址:https://www.jianshu.com/p/678489e022c8简介上一篇文章介绍了Python的网络请求库urllib和urllib3的使用方法,那么,作为同样是网络请求库的Requests,相对于urllib,有什么优点呢?其实,只有两个词,简单优雅。Requests的宣言就是:HTTPforH... 查看详情

python网络爬虫课程设计(代码片段)

...题式网络爬虫设计方案(10分)1.主题式网络爬虫名称《Python爬虫对站长之家网站分类信息网站排行榜的爬取及分析》2.主题式网络爬虫爬取的内容与数据特征分析爬取内容:各类网站的网 查看详情

python项目实战之网络爬虫详解(代码片段)

文章目录一、概述二、原理三、爬虫分类1、传统爬虫2、聚焦爬虫3、通用网络爬虫(全网爬虫)四、网页抓取策略1、宽度优先搜索:2、深度优先搜索:3、最佳优先搜索:4、反向链接数策略:5、PartialPageRa... 查看详情

数据分析⚠️走进数据分析2⚠️爬虫简介(代码片段)

【数据分析】⚠️走进数据分析2⚠️爬虫简介概述爬虫爬取网页设置超时时间处理网络异常概述数据分析(DataAnalyze)可以在工作中的各个方面帮助我们.本专栏为量化交易专栏下的子专栏,主要讲解一些数据分析的基础知识.爬虫爬... 查看详情

30分钟入门python爬虫(代码片段)

爬虫介绍目标:理解爬虫基础知识及其原理简介:网络爬虫,就是我们制定规则,让程序自动爬取网上的信息,实现操作自动化基本流程图工作流程:1.找到想要爬取的网站,利用代码发送请求,等... 查看详情