Python爬虫详解

news2025/2/2 18:50:40

从今天开始,给大家介绍Python爬虫相关知识,今天主要内容是爬虫的基础理论知识。

一、爬虫简介

爬虫是指通过编写程序,来模拟浏览器访问Web网页,然后通过一定的策略,爬取指定内容。因此,爬虫的编写通常分为两个部分,第一部分是更好的模拟浏览器,第二部分是在爬虫爬取的网页信息中,通过一定的方法,提取出我们想要的数据。
爬虫可以快速筛选互联网上的指定数据信息,因此具有很高的应用价值。有一种说法称:“互联网上有”

二、爬虫合法性和编写注意事项

爬虫本身在法律上是不被禁止的,但是爬虫本身作为一项技术,就尤其危险性。编写爬虫的风险主要有以下2点:
1、爬虫干扰了被访问网页的正常运营。
2、爬虫爬取了受保护的数据信息,例如他人隐私数据信息等。
因此,我们在编写爬虫程序时,要特别注意以上两点。一是合理设置爬虫爬取的速度,必要时可以使用sleep()函数可以增加爬虫爬取网页的时间间隔,特备是要审慎使用多线程;二是注意不要爬取收到法律保护的信息,即使是爬取网络上的公开信息,也要注意信息的处理和使用,尽量避免将爬虫爬取的信息传递出去。
在互联网发展初期,各大搜索引擎和知名网站站长之间约定了一个“君子协定”——robots协议。robots协议是各大站点在自己网站的主页面下,创建了一个robots.txt的文件,在该文件中规定了哪些爬虫可以爬取哪些网页,或者不可以爬取哪些网页。
例如,淘宝的robots.txt文件内容如下所示:
在这里插入图片描述
从上图可以看出,淘宝网站拒绝百度爬虫爬取自己的任何站点。
腾讯的robots.txt文件内容如下所示:
在这里插入图片描述
从上图中可以看出,腾讯允许任何爬虫爬取自己的任何页面。
CSDN的robots.txt文件内容如下所示:
在这里插入图片描述
从上图中可以看出,CSDN拒绝了任何爬虫爬取/images/、/ui/等页面。
注意,robots协议之所以是一个“君子协议”,就是因为robots协议本身没有任何强制性!但是这并不意味着robots协议可有可无,有些公司因为违反robots协议而爬取他人网站信息而被迫赔偿的也有很多案例。

三、爬虫的矛与盾

不同的网站对于爬虫的态度是不同的,有的站点可能欢迎“善意”的爬虫爬取自己站点的信息,甚至刻意优化自己的网页,以方便爬虫获取网站信息;有的站点可能不喜欢任何爬虫的爬取;有的可能只允许部分爬虫爬取自己的网页,但是会拒绝其他的爬虫爬取网页。
为了应对爬虫的爬取,各大网站会设置反爬虫机制,通过一定的技术手段,限制爬虫爬取自己网站的信息。须知,爬虫爬取的网页是公开的网页。因此,反爬机制的核心就是区分正常浏览器对网站的访问和爬虫对网站的访问。与之对应的是爬虫的反反爬策略,爬虫会想办法伪装成浏览器,绕过网站的反爬机制,从而爬取到信息。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/103965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nature Communications:人类丘脑的基因结构及其与十种常见大脑疾病的重叠

丘脑是位于大脑中心的重要交流中枢,由不同的核组成,对意识和高级皮层功能至关重要。丘脑结构和功能的改变涉及到常见的大脑疾病的发病机制,但丘脑的遗传结构仍然很大程度上未知。在这里,使用来自30114个个体的大脑扫描和基因型数据…

【Linux】进程创建、进程终止、进程等待

目录 一、进程创建 1.1 深入 fork 函数 1.2 写时拷贝 二、进程终止 2.1 进程退出码 2.2 exit 与 _exit 三、进程等待 3.1 进程等待必要性 3.2 进程等待 3.2 wait 与 waitpid 3.3 获取子进程 status 3.4 非阻塞等待 一、进程创建 1.1 深入 fork 函数 在 Linux 中…

如何对图片进行旋转?这些工具能将图片进行旋转

大家平时在日常生活中有没有遇到这种情况:从网上保存下来的图片发现角度方向是错误的,或者是从相机导入拍摄的图片,打开图片发现它们的方向不统一,不方便我们进行观看。这时需要我们对图片进行旋转操作,才能将图片摆正…

图表控件LightningChart.NET 系列教程(四):安装

LightningChart.NET SDK 是一款高性能数据可视化插件工具,由数据可视化软件组件和工具类组成,可支持基于 Windows 的用户界面框架(Windows Presentation Foundation)、Windows 通用应用平台(Universal Windows Platfor…

Linux 内核网络栈分析: 接收数据

引言 对于内核网络栈的分析我在大二听了李勇大神来小组的讲座以后就想干了,但像很多主题的文章一样,始终没有勇气,也没有时间动手,我终究还是把这个话题从大二延到大三,从大三延到大四了。冥冥之中某种东西好像早已是…

Python 帮同事用pandas快速筛选Excel文件

同事正在为怎样处理一个18万行的全年财务Excel文件发愁,文件足足有30M,打开文件也要两三分钟,于是他就向我求助。大概意思就是要筛选出Data工作簿“源数据”Sheet中所有收款人对应的付款人及付款笔数、金额小计,于是我简化做了一个…

【RuoYi-Vue-Plus】学习笔记 45 - Spring 事件监听器 @EventListener 注解简单分析

文章目录前言参考目录测试方法配置说明测试方法功能调用流程分析事件监听器初始化事件发布流程前言 因为之前比较忙所以匿了一段时间,顺便当了神雕大侠(“阳过”)。前段时间框架已经发布了新版本 V4.4.0,而在最新的 dev 分支中使…

labelImg数据标注及yolov5的训练和测试

labelImg数据标注及yolov5的训练和测试 一、labelImg数据标注的使用 数据标注主要针对于哪个地方是什么,一般像隐私类的是不能标注的,如鲁迅的故居可以标,但是张三的住所就不能进行标注。 labelImg是数据标注主要使用的工具。 1、首先使用…

第十四章 概率图模型

14.1 隐马尔可夫模型 机器学习最重要的任务,是根据一些已观察到的证据(例如训练样本)来对感兴趣的未知变量(例如类别标记)进行估计和推测。概念模型提供了一种描述框架,将学习任务归结于计算变量的概率分布…

ffmpeg-AVPacket

目录 引子 翻译一下官方注释: 成员变量: AVBufferRef *buf pts dts data size stream_index flag side_data side_data_elems duration pos opaque opaque_ref time_base 引子 AVPacket是ffmpeg基础且非常重要的数据结构…

我国脐橙行业现状:种植面积、产量及市场规模不断增长 江西赣州是最大生产区

根据观研报告网发布的《2022年中国脐橙市场分析报告-市场全景评估与发展定位研究》显示,脐橙是芸香科,属柑橘亚科,是柑橘属植物甜橙的一类栽培品种,果皮难或稍易剥离,瓢囊9-12瓣,果心实或半充实&#xff0c…

ChatGPT

ChatGPT是由OpenAI开发的一个人工智能聊天机器人程序,于2022年11月推出。该程序使用基于GPT-3.5架构的大型语言模型并通过强化学习进行训练。目前,有部分地区(例如中国大陆、香港)无法使用此项服务,这里我就介绍一下中…

代码随想录训练营第55天|LeetCode 583. 两个字符串的删除操作、72. 编辑距离

参考 代码随想录 题目一:LeetCode 583. 两个字符串的删除操作 确定dp数组下标及其含义 为了方便dp数组的初始化,在整个分析问题的过程中在word1和word2的最前面添加空字符,注意,不是真正的添加,只是这么认为。 dp[i]…

大学英语笔记

words in use unit 1 The mayor condenseIt was reported exceedresearchers put deficittoo much————exposuremoving forward managerialthe lawyer adequateto help the competentmost parents,,,adjustingyou can count preciselyin …

工控CTF之协议分析8——特殊隧道

协议分析 流量分析 主要以工控流量和恶意流量为主,难度较低的题目主要考察Wireshark使用和找规律,难度较高的题目主要考察协议定义和特征 简单只能简单得干篇一律,难可以难得五花八门 常见的工控协议有:Modbus、MMS、IEC60870、…

Python爬虫学习

文章目录前言概述简单爬虫requests模块⼊⻔数据解析re解析re模块总结前言 本博客仅做学习笔记,如有侵权,联系后即刻更改 科普: 学习参考网站 概述 安全 爬⾍在法律上是不被禁⽌的 像王欣说过,技术是⽆罪的. 主要看你⽤它来⼲嘛 robots.tx…

经纬恒润以太网开发及测试方案,助力智能汽车落地

近年来,为了满足智能网联汽车的开发要求,车载以太网技术开始逐渐进入人们的视野。车载以太网可以满足带宽密集型应用如高级驾驶辅助系统(ADAS)、车载诊断系统(OBD)以及车载信息娱乐系统等所需的更高数据传输…

controlsfx框架NotificationPane组件的使用

controlsfx 是javaFx开源UI框架,里面有很多默认组件的补充,最近在使用其中的NotificationPane组件时,遇到一些问题,记录下来。 官方demo链接: https://github.com/controlsfx/controlsfx/blob/jdk-8/controlsfx-samp…

Unittest接口自动化分享

一、环境搭建 1. Python安装 1. 1Python(3.6.8版本) 下载地址 https://www.python.org/downloads/release/python-368/ 1.1.1 Windows系统 1. 下载1. 对前缀的说明:​ 以Windows x86-64开头的是 64 位的 Python 安装程序;​ …

Ubuntu+Qt下配置车牌识别系统EasyPR1.6环境

1.将EasyPR_v1.6.zip拷贝到虚拟机Ubuntu中 最好是在opt文件夹中 ,可使用 VMware tools 共享文件夹 远程连接工具 2.解压得到EasyPR文件夹 修改文件权限 chmod -R 777 EasyPR 3.查找/opt/EasyPR/include/easypr/config.h中 这边告诉我们,如果open…