Python爬虫入门教程
文章目录:
一:Python基础
二:爬虫须知
1.流程
2.遵守规则
三:HTTP请求和响应
1.相关定义
2.HTTP请求响应
2.1 完整的HTTP请求
2.2 完整的HTTP响应
3.Requests库
四:HTML
1.HTML网页结构
2.常用标
参考:Python+爬虫
一:Python基础
Python快速入门教程
二:爬虫须知
1.流程
第一步:获取网页内容(Requests库发送HTTP请求)第二步:解析网页内容(Beautiful Soup库获取HTML网页结构内容信息)第三步:储存或分析数据
2.遵守规则
1.不要爬取公民隐私数据2.不要爬取受著作权保护的内容3.不要爬取国家事务国防建设和尖端技术领域4.请求数量和频率不能过高:否则可能无异于DDos攻击5.有反扒限制就不要去爬取了:需要登录、验证码6.查看网站的robots.txt文件:了解可爬取的网页路径范围
三:HTTP请求和响应
1.相关定义
HTTP:超文本传输协议客户端和服务器之间的请求响应协议请求方法Get:获得数据Post:创建数据接收的响应数据类型HTML:text/htmlJSON:application/jsonHTML和JSON:text/html,application/json任意类型:/*/常见的状态码和状态消息200 ok 客户端请求成功300 Moved Permanently 重定向资源被永久移动到新地址400 Bad Request 客户端不能被服务器所理解401 Unauthorized 请求未经授权403 Forbidden 服务器拒绝提供服务404 Not Found 请求资源不存在500 Internal Server Error 服务器发生不可预期的错误503 Server Unavailable 服务器当前不能处理客户端的请求
2.HTTP请求响应
2.1 完整的HTTP请求
POST请求#请求行 协议版本POST/user/info?new_user=true HTTP/1.1#请求头 域名 资源路径 查询参数Host:www.douban.com/movie/top250?start=75&filter=unwatchedUser-Agent:curl/7.77.0Accept:*/*#请求体{"username":"刘鑫磊","email":"123@qq.com"}GET请求#请求行GET/user/info?new_user=true HTTP/1.1#请求头Host:www.example.comUser-Agent:curl/7.77.0Accept:*/*
2.2 完整的HTTP响应
#状态行:协议版本 状态码 状态消息 HTTP/1.1 200 OK #响应头 Date:Fri,27 Jan 2023 02:10:48 GMT Content-Type:text/html;charset=utf-8 #响应体 <!DOCTYPE html><head><title>首页</title></head><body><h1>刘鑫磊</h1><p>非常棒</p></body> </html>
3.Requests库
#在终端输入(视图——>工具窗口——>终端):pip install requests import requests#把爬虫程序伪装成正常的浏览器 #任意网页——>鼠标右键——>检查——>Network——>User-Agent——>复制过来 headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"}response=requests.get("http://movie.douban.com/top250",headers=headers) print(response) print(response.status_code) if response.ok:# 获取响应体内容print(response.text) else:print("请求失败")
四:HTML
1.HTML网页结构
<!DOCTYPE HTML> <html><body><h1>我是标题</h1><p>我是一段文字</p></body> </html>
2.常用标
标题:<h1></h1>文本段落:<p></p>换行:<br>图片:<img src="图片链接">链接:<a href="链接地址" target="_self"></a> target="_blank"容器:<span></span> 内联元素不会独占一块,一行可写多个有序列表:<ol><li></li></ol> 无序列表:<ul><li></li></ul>表格<table><thead> #头部<tr> #行<td></td> #列</tr><thead><tbody> #主体<tr> # 行<td></td> # 列</tr></tbody></table>class属性:定义元素的类名称,帮助我们分组class="content" class="review"
相关文章:
Python爬虫入门教程
文章目录: 一:Python基础 二:爬虫须知 1.流程 2.遵守规则 三:HTTP请求和响应 1.相关定义 2.HTTP请求响应 2.1 完整的HTTP请求 2.2 完整的HTTP响应 3.Requests库 四:HTML 1.HTML网页结构 2.常用标 参考&…...
使用正则前瞻检查密码强度
使用正则前瞻检查密码强度 题目要求 要求密码必须包含大小写字母,并且至少包含 $,_. 中的一个特殊字符。 在这道题中,我们可以使用正则表达式的前瞻运算来实现。 const reg /^(?.*\d)(?.*[a-z])(?.*[A-Z])(?.*[$,_.])[\da-zA-Z$,_.]{6,12}/;con…...
react+ts手写cron表达式转换组件
前言 最近在写的一个分布式调度系统,后端同学需要让我传入cron表达式,给调度接口传参。我去了学习了解了cron表达式的用法,发现有3个通用的表达式刚好符合我们的需求: 需求 每天 xx 的时间: 0 11 20 * * ? 上面是…...
民安智库(第三方市民健康素养调研)居民健康素养调查的重要性及实施步骤
一、背景和意义 健康素养是衡量一个社区或国家居民对健康知识的理解,以及他们如何将这些知识应用于日常生活中的能力的重要指标。它不仅包括了基本的医学知识,如疾病预防和治疗,也包括了生活方式的改善,如合理饮食和适当运动。因…...
Linux | vim的入门手册
目录 前言 一、什么是vim 二、vim编辑器的模式 1、插入模式 (1)用vim打开文件 (2)进入插入模式 2、默认模式 (1)光标移动 (2)复制、粘贴与剪切操作 (3&#x…...
B053 项目部署
目录 Linux简介虚拟机软件安装安装centos步骤备份系统网络设置 远程访问Linux步骤永久关闭CentOS防火墙 linux命令linux文件系统linux常用命令目录相关命令文件相关命令 安装JDK先卸载自带的JDK安装JDK复制压缩包到linux解压配置环境变量 安装MySql清理旧文件安装mysqlMysql编码…...
视觉Slam面试题(不定时更新)
文章目录 0 引言1 单目、双目、深度相机和RGBD相机的区别2 特征点法与直接法的优缺点3 等距变换、相似变换、仿射变换、射影变换的区别4 单应矩阵、本质矩阵和基础矩阵的区别5 Slam中为什么用李群李代数6 解释Slam中的绑架问题7 ORB、SIFT和SURF特征点检测算法的区别8 什么是对…...
从入门到进阶 之 ElasticSearch 节点配置 集群篇
🌹 以上分享 ElasticSearch 安装部署,如有问题请指教写。🌹🌹 如你对技术也感兴趣,欢迎交流。🌹🌹🌹 如有需要,请👍点赞💖收藏🐱&a…...
UE4中无法保存项目问题
系列文章目录 文章目录 系列文章目录前言一、解决方法 前言 取消:停止保存所有资产并返回编辑器。 重试:尝试再次保存资产。 继续:仅跳过保存该资产。 当我点击继续时,关闭项目,然后重新打开项目,发现之前…...
解剖—顺序表相关OJ练习题
目录 一、删除有序数组中的重复项,返回出现一次元素的个数。 二、原地移除数组中所有数值等于val的元素 三、合并两个有序数组 四、旋转数组 五、数组形式的整数加法 一、删除有序数组中的重复项,返回出现一次元素的个数。 26. 删除有序数组中的重…...
NAT网关在阿里云的应用
NAT网关(Network Address Translation Gateway)是一种网络地址转换服务,提供NAT代理(SNAT和DNAT)能力。NAT是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。NAT实际上是为解决I…...
操作系统体系结构和OS
1.冯诺依曼计算机体系 关于冯诺伊曼系统,在这里我只是简单讲一讲,更加详细的内容可以看我的计算机组成系列。 常见的笔记本、台式机,不常见的服务器、工作站,大部分都遵守“冯诺依曼体系”,因此该计算机体系就是现代…...
Flutter ☞ 常量
常量 只能被定义一次,并且不可修改的值叫做常量。 在 Flutter 中有两种常量修饰方法 finalconst 相同点 类型声明可以省略 final String a 123; final a 123;const String a 123; const a 123;初始化后不能再赋值 final a 123; a abc; // 错误const a …...
C++ 配置VSCode开发环境
C配置VSCode开发环境 简介 Visual Studio Code (VSCode) 是一款开源的轻量级代码编辑器。它支持许多编程语言,包括C。本文档将详细介绍如何在Windows环境下配置VSCode的C开发环境。 安装步骤 1. 安装Visual Studio Code 首先,你需要下载并安装Visua…...
Arduino_STM32整理贴
Arduion-STM32 stm32duino 让stm32 在arduino中使用 源代码:https://github.com/stm32duino/Arduino_Core_STM32 busybox文件位置 stm32duino 下有个stm32tool 项目,内含有busybox.exe 使用usb转TTL烧写 使用 PA9 PA10 端口 PA9接 RX ,PA10接 TX …...
MoeCTF 2023 Web+Jail wp
----------签到---------- hello CTFer 给了一个URL,是赛博厨子解码base64的flag,flag直接给了。 远程端口转发: 这次比赛估计好多大师傅都没参加,题目环境是在本机内网上的(比如localhost:52005)导致请…...
494.目标和 474.一和零
目标和 题目 给一个都是正整数的组合,然后你可以在里面任意添加或-,求使得最后结果为 目标和S(target)的有多少种方法? 范围 数组非空,且长度不会超过 20 。初始的数组的和不会超过 1000 。保证返回的…...
模拟电源与数字电源之间的区别
BOSHIDA 模拟电源与数字电源之间的区别 模拟电源与数字电源是两种不同的电源类型,其核心区别在于电源控制方式和输出特性。本文将从这两方面对模拟电源和数字电源进行比较和分析。 电源控制方式: 模拟电源的控制方式以模拟电压和模拟电流为基础。模拟电…...
P5461 赦免战俘
题目描述 现有 2 n 2 n ( n ≤ 10 ) 2^n\times 2^n (n\le10) 2n2n(n≤10) 名作弊者站成一个正方形方阵等候 kkksc03 的发落。kkksc03 决定赦免一些作弊者。他将正方形矩阵均分为 4 个更小的正方形矩阵,每个更小的矩阵的边长是原矩阵的一半。其中左上角那一个矩阵…...
【工具】转码silk格式为mp3
【工具】转码slk格式为mp3 前提 安装 ffmpeg 【安装】Linux安装ffmpeg_linux安装ffmpeg4.4_我是Superman丶的博客-CSDN博客 GitHub - kn007/silk-v3-decoder: [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to o…...
磁流变半主动悬架Simulink模型创建与策略设计详解
磁流变半主动悬架simulink模型,包含模型创建,模型策略设计磁流变悬架的Simulink建模就像搭积木——你得先搞清楚每块积木该放哪儿。咱们从最基础的四分之一车模型开始,车身质量、悬架刚度这些参数直接在Simulink里拖几个Mass和Spring模块就能…...
彻底清除TortoiseSVN:从基础卸载到深度清理全指南
1. 为什么TortoiseSVN卸载这么麻烦? 很多朋友第一次卸载TortoiseSVN时都会遇到各种"后遗症"——右键菜单残留、注册表垃圾、文件夹图标异常。这其实和它的工作原理有关。TortoiseSVN作为Windows资源管理器的Shell扩展,会深度集成到系统底层。我…...
30个核心概念一次讲明白,小白也能轻松入门大模型(收藏版)
这几年,AI 几乎成了人人都在谈的话题。 有人在聊大模型,有人在说智能体,有人担心算力不够,也有人被“参数”、“微调”、“多模态”、“RAG”这些词绕得头晕。 结果就是:听了很多,越听越乱。 这篇文章是用尽…...
Qwen3-14B镜像实操:自定义Tokenizer适配垂直领域专业术语
Qwen3-14B镜像实操:自定义Tokenizer适配垂直领域专业术语 1. 镜像概述与核心优势 Qwen3-14B私有部署镜像是专为RTX 4090D 24GB显存环境优化的完整解决方案,开箱即用无需复杂配置。这个镜像最显著的特点是针对垂直领域专业术语进行了Tokenizer的深度优化…...
Modbus协议详解:从原理到工业应用实践
1. Modbus协议概述Modbus是一种应用层报文传输协议,由Modicon公司(现为施耐德电气旗下品牌)于1979年开发。作为工业自动化领域最广泛采用的通信协议之一,它定义了控制器设备之间交换信息的通用语言。关键特性:协议标准…...
S2-Pro模型部署在CentOS7生产环境:系统调优与安全加固
S2-Pro模型部署在CentOS7生产环境:系统调优与安全加固 1. 引言 在AI模型生产环境部署中,系统调优和安全加固往往是被忽视却至关重要的环节。很多团队花费大量精力优化模型性能,却因为基础环境配置不当导致服务不稳定或安全漏洞。本文将手把…...
实战派指南:用MaPLe思路优化你的CLIP下游任务,附关键配置与避坑建议
实战派指南:用MaPLe思路优化你的CLIP下游任务,附关键配置与避坑建议 当CLIP遇上业务场景,90%的开发者都会遇到相同的问题:模型在新类别上的表现总是不尽如人意。上周团队用默认参数跑跨模态检索任务时,基类准确率82%的…...
ANR-WatchDog源码深度剖析:从线程监控到错误抛出的完整实现
ANR-WatchDog源码深度剖析:从线程监控到错误抛出的完整实现 【免费下载链接】ANR-WatchDog A simple watchdog that detects Android ANR (Application Not Responding) error and throws a meaningful exception 项目地址: https://gitcode.com/gh_mirrors/an/AN…...
如何为Whisper ASR Webservice开发自定义引擎和插件
如何为Whisper ASR Webservice开发自定义引擎和插件 【免费下载链接】whisper-asr-webservice OpenAI Whisper ASR Webservice API 项目地址: https://gitcode.com/gh_mirrors/wh/whisper-asr-webservice Whisper ASR Webservice是一个基于OpenAI Whisper的语音识别服务…...
C++高性能服务开发:忍者像素绘卷推理引擎封装
C高性能服务开发:忍者像素绘卷推理引擎封装 1. 为什么需要高性能推理引擎 在游戏开发领域,实时生成高质量像素艺术的需求正在快速增长。传统的预渲染方式无法满足玩家对个性化内容和动态场景的需求,而直接使用Python等脚本语言运行的AI模型…...
