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…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀”
深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀” 在JavaScript中,我们经常需要处理文本、数组、对象等数据类型。但当我们需要处理文件上传、图像处理、网络通信等场景时,单纯依赖字符串或数组就显得力不从心了。这时ÿ…...

简单聊下阿里云DNS劫持事件
阿里云域名被DNS劫持事件 事件总结 根据ICANN规则,域名注册商(Verisign)认定aliyuncs.com域名下的部分网站被用于非法活动(如传播恶意软件);顶级域名DNS服务器将aliyuncs.com域名的DNS记录统一解析到shado…...