python爬虫——入门

一、概念

万维网之所以叫做网,是因为通过点击超链接或者进入URL,我们可以访问任何网络资源,从一个网页跳转到另一个网页,所有的相关资源连接在一起,就形成了一个网。

而爬虫呢,听名字就让人想起来一个黏糊糊的蠕虫或者蜘蛛等,实际上,爬虫本质上即使一个程序蜘蛛,按照一定的规则,自动沿着这张网抓取上面的信息。

用处:

  • 收集目标信息:比如爬取招聘网站,找出给python工程师的薪资排在前10的本地公司,你可以用它来比较价格等。(个人)
  • 舆情监控
  • 市场调研
  • 搜索引擎

二、安装。

python直接去官网下载即可,python编辑器我这里用的是pycharm软件。

安装教程直接百度即可。

三、爬虫流程

我们都听说过,爬虫学的好,牢饭吃的早。那么我们应该怎么正确利用爬虫技术呢?哪些事情是我们能做的,哪些是我们不能做的。

那接下来我们就来聊一聊爬虫的流程大概是什么样子的!

  1. 获取网页内容:我们会通过代码给一个网站服务器发送请求,它会返回给我们网页上的内容。在我们平时用浏览器访问网页内容时,本质上也是给网站服务器发送一个请求,服务器返回网页内容。(只不过,浏览器还会进行一个额外的步骤,就是把内容渲染成直观优美的页面给用户进行展现,而用程序获得的内容更加原始)
  2. 解析网页内容:在上一个步骤,我们可以获取整个网页的内容,那太多太复杂了,而我们其实根本不想要看到这么多信息,这个时候我们需要进行筛选。比如去tb买东西,我们可能只关注商品种类和价格,对于活动信息或者用户评价等内容不感兴趣。所以需要对内容进行解析,把想要的数据提取出来。
  3. 储存或分析数据:取决于具体需求。比如你一开始是为了收集数据集,那这一步骤可能就是把数据存储进数据库;如果你一开始是为了分析数据趋势,那这一步骤可能就是把数据做成可视化图表;如果你一开始是为了做舆情监控,这一步骤可能就是用AI做文本情绪分析。

爬虫大概的流程讲完了,那么我们来讲讲怎么避免吃牢饭!!!

为了能够成为社会主义好青年,请你务必遵守一些规则:

  • 不要爬取共鸣隐私数据
  • 不要爬取受著作权保护的内容
  • 不要爬取国家事务、国防建设、尖端科学技术领域的计算机系统等

除了以上红线不能跨过以外,还有一些事情是需要我们注意的。

  • 爬虫的请求数量和频率不能过高,否则可能无异于DDos攻击。(DDos攻击就是通过给服务器发送海量高频的请求,让网站资源被耗尽,导致其无法服务其他正常用户)
  • 如果网站明显做出了反爬限制,比如有些内容要登陆后才可查看,或是有验证码等限制机器的机制,就不要去强行突破了。
  • 你可以通过查看网站的robots.txt文件了解可爬取的网页路径范围,这个文件会知名哪些网页允许被爬取,哪些不允许被爬取,有些还会专门列出针对搜索引擎爬虫的许可范围。

四、需要学习哪些内容呢?

(1)在获取网页内容方面

  • HTTP请求,来获得网页内容
  • python的Requests库,通过它就可以用python代码简单优雅地发送HTTP请求。

(2)在解析网页内容方面

  • HTML网页结构(因为发送请求后获得的内容,很多情况下回事HTML格式)
  • python的Beautiful Soup库,帮助解析获取到的HTML内容,提取信息

(3)在储存或分析数据方面

学什么,根据具体需求而异。

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

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

相关文章

string类题目(上)

string类题目 题目来源(Leetcode) 题目一:仅仅反转字母 分析 这个反转的特点在于只反转字母,不反转特殊字符。 法一:如果我们让一个正向迭代器指向第一个字符,让一个反向迭代器指向最后一个字符&#xf…

kafka常用命令汇总

文章目录 命令1命令2命令3命令4命令5命令6命令7命令8命令9 其他说明提示:以下是本篇文章正文内容,Kafka 0.9.x 及更高版本中使用 在使用 Kafka 命令行工具时,–zookeeper 和 --bootstrap-server 参数用于指定不同的连接信息,具体取决于你使用的命令以及 Kafka 版本。 --zo…

ch32v307vct6从头移植FreeRTOS

使用官方的ide可以直接创建带FreeRTOS的工程,但是不利于我们学习移植,所以特此记录怎么从头开始移植FreeRTOS到CH32V307VCT6芯片使用。 下载FreeRTOS源码 首先进入https://www.freertos.org/官网,然后找到如下Download字样,进入下…

华为云通过自定义域名访问桶内对象

问题:通过将自定义域名绑定至OBS桶实现在线预览文件 例如index.html入口文件 且记 自定义域名绑定暂时不支持HTTPS访问方式,只支持HTTP访问方式 自定义域名就先不用部署https证书。 配置完毕之后,将obs桶设置为公开的即可访问 如何在浏览…

Redis为什么会阻塞

Redis的一些阻塞点 BigKey删除,删除数据库,AOF日志同步聚合操作,全量查询操作,从库读取RDB文件。 其中删除BigKey,AOF日志,删除数据库可以异步执行。 聚合操作,全量查询,从库读取RD…

Mysql 集群技术

Mysql在服务器中的部署方法 安装MySQL依赖性 rootmysql-node10 ~]# dnf install cmake gcc-c openssl-devel \ ncurses-devel.x86_64 libtirpc-devel-1.3.3-8.el9_4.x86_64.rpm rpcgen.x86_64 下载并解压源码包 使用命令tar zxf mysql-boost-5.7.44.tar.gz进行解压 源码编译安…

硬件面试经典 100 题(81~90)题

81、请问下图电路中二极管 D1、D2 有什么作用? 在 Vi 输入电压接近于零时,D1、D2 给三极管 T1、T2 提供偏置电压,使 T1、T2 维持导通,以消除交越失真。 陈氏解释 这道题参见:硬件面试经典 100 题(51~70 题…

【自动化】一共获取6600多公司信息【逆向】一页15还加密。

一、【逆向】一页15还加密。 二、【自动化】一共获取6600多公司信息 三、对于两种方式我喜欢第二种自动化 from DrissionPage import ChromiumPage, ChromiumOptions import time # chrome:version co = ChromiumOptions().set_paths(browser_path=r"C:\Users\lenovo\A…

【Java EE】深入理解 Java 线程的生命周期与状态转换

多线程编程在 Java 中是实现高效并发的核心技术之一。每个线程在其生命周期内会经历多个状态,这些状态反映了线程在特定时间点的行为与系统资源的使用情况。了解线程的状态及其转换机制,对于编写健壮的并发程序尤为重要。本文将深入探讨 Java 线程的六种…

python 零星知识点

一、头部注释 在Python脚本中,头部注释(也称为文档字符串或模块级注释)用于提供关于脚本的元数据和描述信息。除了指定解释器和编码方式外,还可以包含其他信息。以下是一些常见的头部注释示例: 1.模块描述 "&qu…

【MySQL】MySQL表的增删改查(初阶)

欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 表内容操作 插入内容 按顺序插入 指定某些列插入 一次插入多行记录 插入时间 查询表内容 全列查询 指定列查询 指定表达式查询 用as取别名 ​编辑 去重查询 排序查询…

不同搜索引擎蜘蛛的功能、‌抓取策略与技术实现差异探究

搜索引擎作为互联网信息检索的重要工具,‌其核心功能依赖于背后的“蜘蛛”程序。‌这些蜘蛛程序负责访问互联网上的各种内容,‌并建立索引数据库,‌以便用户能够快速准确地找到所需信息。‌然而,‌不同搜索引擎的蜘蛛在功能、‌抓…

Axios介绍;前后端分离开发的介绍;YAPI的使用;Vue项目简介、入门;Elementui的使用;nginx介绍

1 Ajax 1.1 Ajax介绍 1.1.1 Ajax概述 我们前端页面中的数据,如下图所示的表格中的学生信息,应该来自于后台,那么我们的后台和前端是互不影响的2个程序,那么我们前端应该如何从后台获取数据呢?因为是2个程序&#xf…

仿Muduo库实现高并发服务器——EventLoop模块

我刚开始看这个模块时,也是看不明白,什么是事件管理模块。 此时此刻,大领导的背影,还是那么清晰。结合故事模块,慢慢理。 EventLoop模块 成员: 绿色: 利用智能指针对new出来的对象进行管理&…

武汉流星汇聚:亚马逊赋能中小企业,跨境电商市场举足轻重地位稳

在全球经济一体化的浪潮中,跨境电商作为推动国际贸易的重要力量,正以前所未有的速度发展。在这场全球性的商业竞赛中,亚马逊以其卓越的市场表现、强大的技术实力和深厚的品牌影响力,稳居跨境电商市场的领头羊地位,其举…

多任务下载工具.exe

关键代码 void DownloadTask::StartDownload(const QUrl url,QFile *file,qint64 startPoint/* 0 */,qint64 endPoint/* -1 */) {if( NULL file )return;m_HaveDoneBytes 0;m_StartPoint startPoint;m_EndPoint endPoint;m_File file;//根据HTTP协议,写入RANGE…

Vue3基础2

1.Hooks 就是进行数据的封装,同一种类型的 数据 方法 计算属性 ,放在一起 命名规范 use功能名称.ts 或.js 创建一个文件夹 hooks 1.useDog.ts import { reactive,onMounted } from "vue"; import axios from "axios";export def…

[数据集][目标检测]红外场景下车辆和行人检测数据集VOC+YOLO格式19069张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):19069 标注数量(xml文件个数):19069 标注数量(txt文件个数):19069 标…

SQL AI 工具:颠覆数据库管理与分析的创新力量

一、SQL AI 工具的兴起与发展 在当今数字化的时代,数据量呈现爆炸式增长,企业和个人对于高效管理和分析数据的需求日益迫切。传统的数据库管理和查询方式,对于非技术人员来说存在较高的门槛,操作复杂且耗时。这一背景为 SQL AI 工…

人工智能开发NPU使用

1. NPU使用 RK3588 内置 NPU 模块, 处理性能最高可达6TOPS(即每秒处理6万亿次操作)。这款NPU不仅拥有强大的计算能力,支持TensorFlow、Caffe、Tflite、Pytorch、Onnx NN、Android NN 等常见框架。使用该NPU需要下载RKNN SDK,RKNN…