爬虫入门学习

流程

  • 获取网页内容
    HTTP请求
    Python Requests
  • 解析网页内容
    HTML网页结构
    Python Beautiful Soup
  • 储存或分析数据

HTTP (Hypertext Transfer Protocol)
客户端和服务器之间的请求-响应协议
Get方法:获得数据
POST方法:创建数据

  • HTTP请求
    请求行 方法类型 资源路径?查询参数 协议版本
    POST /user/info?new_user=true&… HTTP/1.1
    请求头 主机域名 客户端相关信息 想接受的响应数据类型
    Host:www.
    User-Agent:
    Accept: /
    请求体 客户端传给服务器的其他任意数据

  • HTTP响应
    状态行 协议版本 状态码 状态消息
    HTTP/1.1 200 OK
    响应头 告知客户端的信息(响应时间、响应内容类型、编码格式
    响应体 服务器给客户端的数据内容

Python Requests

  • 安装
    pip install requests
import requests
伪装浏览器请求
headers = { "User-Agent": "Mozilla/5.0(Windows NT 10.9; Win64; x64)"
response = requests.get("网址")
if response.ok:获取响应体内容print(response.text)
else:print("请求失败"

HTML 定义网页的结构和信息

  • 常用标签
<h1>标题</h1>
<p>文本段落</p>
<br>换行
<b>加粗</b>
<img src="" width="500px">图片
<a href="链接" target="跳转方式_self/_blank">链接名</a>
<div></div> 容器 块级元素 独占一块
<span></span> 容器 内联元素 一行可有多个
<ol>有序列表<li></li><li></li>
</ol>
<ul>无序列表<li></li><li></li>
</ul>
表格
<table 边框border="1"><thead>头部</thead><tbody>主体<tr><td></td></tr></tbody>
</table>
class属性 类可以用于所有元素帮助分组
<p class="content"></p>

Beautiful Soup

  • 安装
    pip install bs4
  • 基本用法
from bs4 import BeautifulSoup
import requests
content = requests.get("").text
# 传入构造函数
soup = BeautifulSoup(content, "html.parser")
# 解析成树状结构的实例对象
all_prices = soup.findAll("p", attars={"class": "price_color"})
# 返回可迭代对象
for price in all_prices:print(price.string[2:])

正则表达式库re

根据自定义规则匹配一个或多个字符
在这里插入图片描述

多线程库threading

让不同线程同时爬取多个网页

数据分析

待进一步学习

工具 腾讯chatBI

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

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

相关文章

CPP八股文-模板类.内存管理,指针

为什么模板类的定义需要放在头文件中&#xff1f; 无论是类模板还是函数模板&#xff0c;都是一个蓝图&#xff0c;本身不是一个类或函数&#xff0c;编译器用模板产生指定的类或函数的特定类型版本。产生模板的特定类型实例的过程称为模板的实例化。所以一般将模板类放在头文…

rv1126-rv1109-mkcramfs-mkfs.cramfs-打包文件系统

事情是这样的: 定制了文件系统打包功能;然后我是根据这个指令 fakeroot mkfs.cramfs rootfs_glibc_rv1126/ rootfs.img mkfs.cramfs rootfs_glibc_rv1126/ rootfs.img 起因就是这个fakeroot; 不加的话打出来的rootfs.img是没有用户权限的 然后我根据fakeroot mkfs.cramfs ro…

vue仓库的使用

Vue仓库通常指的是使用Vue CLI创建的项目仓库&#xff0c;它包含了项目的所有源代码、配置文件以及依赖项。以下是如何使用Vue仓库的一些基本步骤和最佳实践&#xff1a; 创建Vue项目 首先&#xff0c;你需要安装Vue CLI&#xff0c;然后使用它来创建一个新的Vue项目。 npm i…

AcWing算法基础课-785快速排序-Java题解

大家好&#xff0c;我是何未来&#xff0c;本篇文章给大家讲解《AcWing算法基础课》785 题——快速排序。这篇文章介绍了使用快速排序算法对整数数列进行排序的方法&#xff0c;包括选择基准元素、分区操作和递归排序子数组。通过详细的步骤和示例&#xff0c;解释了快速排序的…

MySQL之数据库基础

目录 一、数据库 1、基本概念 2、常见的数据库 3、MySQL数据库 连接MySQL服务器 数据逻辑存储 二、数据库和表的本质 三、SQL语句 四、服务器&#xff0c;数据库&#xff0c;表的关系 五、存储引擎 查看存储引擎 一、数据库 1、基本概念 一般来说&#xff0c;数据库…

es映射配置(_mapping)

文章目录 1、创建映射字段2、查看映射关系 1、创建映射字段 PUT /索引库名/_mapping {"properties": {"字段名": {"type": "类型","index": true&#xff0c;"store": true&#xff0c;"analyzer": &q…

Vue转React踩坑记录——useEffect组件卸载时使用useState定义的值返回undefined

bug背景&#xff1a;vue转react踩坑。在vue数据是响应式的&#xff0c;卸载时不会出现数据已经赋值但是卸载是undefined情况&#xff0c;除非手动更改为undefined。而在react流行的hooks写法&#xff0c;你要一直操作数据&#xff0c;react提供的useEffect方法的return 里其实就…

视频结构化从入门到精通——视频结构化主要技术介绍

视频结构化主要技术 1 视频接入 “视频接入”是视频结构化管道的起点&#xff08;SRC Point&#xff09;视频接入是视频结构化处理的第一步&#xff0c;它涉及将视频数据从各种采集源获取到系统中进行进一步处理。视频接入的质量和稳定性对后续的数据处理、分析和应用至关重要…

多参数遥测终端科技守护水电站生态流量下泄

随着我国水电事业的蓬勃发展&#xff0c;水电站在推动地方经济快速增长、缓解能源压力方面发挥了不可替代的作用。然而带来的生态环境问题日益凸显&#xff0c;因水电站下泄流量不足造成部分河段减水、脱水甚至干涸&#xff0c;影响了河流的正常生态功能和居民的生产、生活。因…

Android12 添加设置控制导航栏显示和状态栏下拉

添加key值 位置&#xff1a; frameworks/base/core/java/android/provider/Settings.java /*** Control navigation bar enabled*/ReadableSuppressLint("NoSettingsProvider")public static final String NAVIGATIONBAR_ENABLED "navigationbar_enabled"…

【硬件操作入门】2--GPIO与门电路、二极管三极管、LED电路与操作

【硬件操作入门】2–GPIO与门电路&#xff08;二极管&三极管&#xff09;、LED电路与操作 文章目录 【硬件操作入门】2--GPIO与门电路&#xff08;二极管&三极管&#xff09;、LED电路与操作一、GPIO与门电路1.1、GPIO的应用1.2、GPIO引脚操作1.2.1 设置引脚为GPIO功能…

【计算机组成原理】3.2.4 双端口RAM和多模块存储器

3.2.4 双端口RAM和多模块存储器 本视频涉及两种内存优化技术&#xff0c;分别是“双端口RAM”和“多模块存储器”。其中&#xff0c;“双端口RAM”已从408大纲删除&#xff0c;但由于部分自命题院校依然会考这个概念&#xff0c;视频中仍然保留了这部分内容。 408考生简要了解…

Flutter Riverpod状态管理之AutoDisposeNotifierProvider

Flutter Riverpod状态管理之AutoDisposeNotifierProvider Flutter的Riverpod状态管理&#xff0c;目前来看是官方出的最好用的状态管理库了&#xff0c;今天我们主要看AutoDisposeNotifierProvider的使用&#xff0c;AutoDisposeNotifierProvider具有如下的优势&#xff1a; 1…

day39(8/29)——harbor私有仓库管理

一、harbor私有仓库管理 是python的包管理工具&#xff0c;和yum对redhat的关系是一样的 yum -y install epel-release yum -y install python2-pip pip install --upgrade pip pip list pip 8x pip install --upgrade pip pip install --upgrade pip20.3 -i https://mirror…

RFID光触发标签在文件柜管理中的创新应用

在当今信息化时代&#xff0c;文件管理对于企业和机构的重要性不言而喻。传统的文件柜管理方式存在诸多问题&#xff0c;如查找文件困难、管理效率低下、安全性难以保障等。而 RFID 光触发标签技术的出现&#xff0c;为文件柜管理带来了全新的解决方案。 一、传统文件柜管理的…

高效学习的方式

一、如何确定一个知识点是否值得投入学习&#xff1f; 1、目标对齐&#xff1a;考虑这个知识点是否与你的个人目标、职业发展或兴趣爱好相符。 2、需求分析&#xff1a;分析当前市场或学术界对这个知识点的需求&#xff0c;是否具有普遍性和紧迫性。 3、资源可用性&#xff…

Spring扩展点系列-@PostConstruct

简介 spring的Bean在创建的时候会进行初始化&#xff0c;而初始化过程会解析出PostConstruct注解的方法&#xff0c;并反射调用该方法。 PostConstruct 的使用和特点 只有一个非静态方法能使用此注解&#xff1b;被注解的方法不得有任何参数&#xff1b;被注解的方法返回值必…

行为型设计模式-中介者(mediator)模式-python实现

设计模式汇总&#xff1a;查看 通俗示例 想象一下你正在参与一个团队项目&#xff0c;团队成员包括设计师、前端开发者、后端开发者、测试工程师等。每个团队成员都需要与其他成员沟通协作&#xff0c;比如设计师完成设计后需要通知前端开发者开始开发&#xff0c;前端开发者完…

实际开发中git在IDEA中的使用

相信搜索这个的同学代码都已经拉取到本地了&#xff0c;并且已经在idea中打开了。 1.一般我们从远程colone下来的代码默认是在主分支下的&#xff0c;也就是说我们从远程的主分支拉取的代码并且在本地创建了一个主分支。 2.一般主分支是不允许修改的&#xff0c;所以我们可以基…

Logistic分类算法原理及Python实践

一、Logistic分类算法原理 Logistic分类算法&#xff0c;也称为逻辑回归&#xff08;Logistic Regression&#xff09;&#xff0c;是机器学习中的一种经典分类算法&#xff0c;主要用于解决二分类问题。其原理基于线性回归和逻辑函数&#xff08;Sigmoid函数&#xff09;的组…