爬虫(学习笔记)
python爬虫
- 一、Python基础回顾
- 变量类型
- 其他操作
- 面向对象编程
- 二、爬虫流程
- HTTP协议
- HTML
- 爬虫demo01
- 爬虫demo02
- 学习资料
Python+爬虫
爬虫实战案例
AI学堂爬虫教学
一、Python基础回顾
变量类型
可变类型:可以进行添加、修改、删除
(列表、字典…)
不可变类型:不可以进行上述操作
(数字、字符串、元组…)
| 知识点 | 阐释 | 举例 |
|---|---|---|
数字不可变类型 | 标准数据类型之一 | i整数、浮点数 |
字符串不可变类型 | 标准数据类型之一 | str = “Hello World!” |
| len(str) | 求长度,包含空格 | print(len(str)) 结果为12 |
| str[1] | 字符串索引,从0开始 | print(str[0]) = e |
| str[2:7] | 返回字符串中第三个至第六个之间的字符串 | print(str[2:5]) = llo Wo |
| str[2:] | 返回从第三个字符开始的字符串 | print(str[2:]) = llo World! |
列表可变类型 方括号[ ] | 标准数据类型之一 | list = [123,‘orange’,66.6,‘apple’,100] |
| len(list) | 列表中元素的个数 | print(len(list)) 结果为5 |
| list[1] | 返回列表中第二个元素 | print(list[0]) = orange |
| list[1:4] | 返回列表中第二个元素到第四个元素 | print(list[1:4]) = [‘orange’,66.6,‘apple’] |
| list[2:] | 返回从第三个元素开始至列表末尾所有元素 | print(list[2:]) = [66.6,‘apple’,100] |
| list.append(‘banana’) | 添加元素 | print(list) = [123,‘orange’,66.6,‘apple’,100,‘banana’] |
| list.remove(’apple‘) | 删除元素 | print(list) = [123,‘orange’,66.6,100,‘banana’] |
| max( )、min( )、soted( ) | 全是数字的列表找最大值、最小值、递增排序函数 | 函数括号中放列表名称即可,返回结果分别是数字、数字、列表 |
元组不可变类型 圆括号( ) | 标准数据类型之一 | 元组是不可变类型 故不能进行添加、删除操作 |
字典“键” 是不可变类型 "字典”是可变类型 | 标准数据类型之一 键key值value对,用键查找值 | dict={“a”:“001”, “b”:“002”, “c”:“003”} “键与值”之间用冒号隔开,“键值对”之间用逗号隔开 |
| len(dict) | 键值对个数 | print(len(dict)) 结果为3 |
| dict[“a”] | 查找键对应的值 | print(dict[“a”]) = 001 |
| dict.keys() | 返回所有键 | print(dict.keys()) = dict_keys([‘a’, ‘b’, ‘c’]) |
| dict.values() | 返回所有值 | print(dict.values()) = dict_values([‘001’, ‘002’, ‘003’]) |
| dict.items() | 返回所有键值对 | |
| 添加键值对 | dict[“d”] = “004” | print(dic) = {‘a’: ‘001’, ‘b’: ‘002’, ‘c’: ‘003’, ‘d’: ‘004’} |
| 删除键值对 | del dict[“a”] | print(dict) = |
| 检查键是否存在 | print(“a” in dict) 返回布尔值 | True则为存在 |
| 元组作为键 | dict = {(“张伟”,21):“001”, (“张伟”,34):“002”, (“张伟”,44):“003”} | 其中(张伟,xx)是不可变的元组类型 由于年龄不同,则可区分不同的张伟,并根据需要输出对应的值 |
其他操作
| 知识点 | 阐释 | 举例 |
|---|---|---|
| type( ) | 返回对象类型的函数 | type(None) 结果为<class ‘None Type’> |
| input( ) | 从控制台获取输入,一律返回字符串 需要将结果赋值给一个变量 print中 “+” 只能用于字符串的连接 | age = input(“请输入年龄:”) print(“年龄为” + age) |
| 强制类型转换 | int( )、float( )、str( ) 将input的返回值改成需要的类型 | age = int(input(“请输入年龄:”)) xu_age = age + 1 print(“虚岁为” + str(xu_age)) |
| range(5,10) | range(起始,终止-1) | for i in range(5,10) i 被依次赋值为5,6,7,8,9不包含10 |
| range(1,10,2) | range(起始,终止-1,步长) | i 依次被赋值为1 3 5 7 9 |
| range(5) | 默认起始值为0,终止值为5,步长为1 | |
| format | 格式化输出 | gpa_dict = {“a”:3.251,“b”:3.869,“c”:4.256} for name,gpa in gpa_dict.items(): print(“{0}的绩点为{1}”.format(name,gpa)) |
| f “你的年龄为{age}” | 格式化输出 | f加花括号加变量 |
| def 函数名(): | 函数定义,别忘记加冒号 | |
| 按住ctrl+函数名 | 查看具体函数实现 |
面向对象编程
二、爬虫流程
- 确定目标网站
- 得到该网站的 URL
- 对该 URL 发起请求以获取页面的 HTML 代码
- 使用解析工具从 HTML 中获取数据
- 将获取到的数据保存到 JSON 或 CSV 文件中或者保存成其他格式
HTTP协议
HTML
爬虫demo01
爬虫demo02
相关文章:
爬虫(学习笔记)
python爬虫 一、Python基础回顾变量类型其他操作面向对象编程 二、爬虫流程HTTP协议HTML爬虫demo01爬虫demo02 学习资料 Python爬虫 爬虫实战案例 AI学堂爬虫教学 一、Python基础回顾 变量类型 可变类型:可以进行添加、修改、删除 (列表、字典…&#x…...
让业务满意的性能测试报告模板应该是怎样的?
前言 先前在北京出差,和同事聊到了一个关于流量网关如何进行性能验证的需求,当时专门与同事进行了一番讨论,后面写了一篇相关文章。 结果没过多久同事找到我,希望我帮他们写一份给到业务团队的性能测试报告,原因是业…...
高防IP如何保护服务器
首先我们要知道什么是高防IP~ 高防IP是指高防机房所提供的ip段,主要是针对互联网服务器遭受大流量DDoS攻击时进行的保护服务。高防IP是目前最常用的一种防御DDoS攻击的手段,用户可以通过配置DDoS高防IP,将攻击流量引流到高防IP,防…...
C++提高编程——STL:string容器、vector容器
本专栏记录C学习过程包括C基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下,不定时更新,欢迎关注。 当前章节处于: ---------第1阶段-C基础入门 ---------第2阶段实战…...
three.js从入门到精通系列教程004 - three.js透视相机(PerspectiveCamera)滚动浏览全景大图
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>three.js从入门到精通系列教程004 - three.js透视相机(PerspectiveCamera)滚动浏览全景大图</title><script src"js/three.js"&g…...
Gradle 笔记
Gradle依赖管理(基于Kotlin DSL) **注意:**如果不是工作原因或是编写安卓项目必须要用Gradle,建议学习Maven即可,Gradle的学习成本相比Maven高很多,而且学了有没有用还是另一回事,所以ÿ…...
flume案例
在构建数仓时,经常会用到flume接收日志数据,通常涉及到的组件为kafka,hdfs等。下面以一个flume接收指定topic数据,并存入hdfs的案例,大致了解下flume相关使用规则。 版本:1.9 Source Kafka Source就是一…...
信用评价研究MATLAB仿真代码
信用评价是各种店铺卖家分析买家信用行为的重要内容, 本文给出随机仿真代码模拟实际交易过程的信用评价. 主要研究内容有: (1)研究最大交易额和信用度的关系 (2)研究买家不评价率对信用度影响 (3)研究交易次数对信用度影响 MATLAB程序如下: 主程序main.m %% clc;close a…...
网络安全产品之认识防毒墙
在互联网发展的初期,网络结构相对简单,病毒通常利用操作系统和软件程序的漏洞发起攻击,厂商们针对这些漏洞发布补丁程序。然而,并不是所有终端都能及时更新这些补丁,随着网络安全威胁的不断升级和互联网的普及…...
android 防抖工具类,经纬度检查工具类
一:点击事件防抖工具类: public abstract class ThrottleClickListener implements View.OnClickListener {private long clickLastTimeKey 0;private final long thresholdMillis 500;//millisecondsOverridepublic void onClick(View v) {long curr…...
PgSQL - 17新特性 - 块级别增量备份
PgSQL - 17新特性 - 块级别增量备份 PgSQL可通过pg_basebackup进行全量备份。在构建复制关系时,创建备机时需要通过pg_basebackup全量拉取一个备份,形成一个mirror。但很多场景下,我们往往不需要进行全量备份/恢复,数据量特别大的…...
Vue3setup()的非语法糖和语法糖的用法
1、setup()的语法糖的用法 script标签上写setup属性,不需要export default {} setup() 都可以省 创建每个属性或方法时也不需要return 导入某个组件时也不需要注册 <script setup > // script标签上写setup属性,不需要export default {} set…...
HTTP状态信息
1xx: 信息 消息:描述:100 Continue服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。101 Switching Protocols服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。 2xx: 成功 消息:描述:200…...
CSS之边框样式
让我为大家介绍一下边框样式吧!如果大家想更进一步了解边框的使用,可以阅读这一篇文章:CSS边框border 属性描述none没有边框,即忽略所有边框的宽度(默认值)solid边框为单实线dashed边框为虚线dotted边框为点线double边框为双实线 代码演示&…...
k8s-helm
Helm: 什么是helm,在没有这个heml之前,deployment service ingress的作用就是通过打包的方式,把deployment service ingress这些打包在一块,一键式的部署服务,类似于yum 官方提供的一个类似于安全仓库的功能,可以实现…...
黑马程序员JavaWeb开发|Maven高级
一、分模块设计与开发 分模块设计: 将项目按照功能拆分成若干个子模块,方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享。 注意:分模块开发需要先对模块功能进行设计,再进行编码。不会先将工…...
【经验分享】MAC系统安装R和Rstudio(保姆级教程)安装下载只需5min
最近换了Macbook的Air电脑,自然要换很多新软件啦,首先需要安装的就是R和Rstudio啦,网上的教程很多很繁琐,为此我特意总结了最简单实用的安装方式: 一、先R后Rstudio 二、R下载 下载网址:https://cran.r-project.org …...
探索设计模式的魅力:“感受单例模式的力量与神秘” - 掌握编程的王牌技巧
在软件开发的赛场上,单例模式以其独特的魅力长期占据着重要的地位。作为设计模式中的一员,它在整个软件工程的棋盘上扮演着关键性角色。本文将带你深入探索单例模式的神秘面纱,从历史渊源到现代应用,从基础实现到高级技巧…...
SpringCloud Aliba-Seata【上】-从入门到学废【7】
目录 🧂.Seata是什么 🌭2.Seata术语表 🥓3.处理过程 🧈4.下载 🍿5.修改相关配置 🥞6.启动seata 1.Seata是什么 Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能…...
C# Cad2016二次开发选择csv导入信息(七)
//选择csv导入信息 [CommandMethod("setdata")] //本程序在AutoCAD的快捷命令是"DLLLOAD" public void setdata() {Microsoft.Win32.OpenFileDialog dlg new Microsoft.Win32.OpenFileDialog();dlg.DefaultExt ".csv";// Display OpenFileDial…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
