一 初识爬虫

news2024/12/22 19:28:02

一 爬虫和python

1a6f539c0a844ccf99ce4215b664b672.png


二 爬虫的合法性

1c7046f36f3745ce89ae8f03d9609a78.png


三 爬虫的介绍

a3fc2fed14d74a6da8e69ac795268ad8.png 通过程序去访问网站,网站肯定希望用户来访问网站,而不是程序来访问,可以使用一些技术手段。设置障碍。

2a7aab13cc3f4ddeaf75cd9f58a27b1e.png

 越过障碍。

fb455175b8e84ea1ae422a2b458555f5.png

8b6fb8e5369a43588681ba9681630be7.png

 


四 爬虫示例

需求:用程序模拟浏览器。输入一个网址。从该网址中获取到资源或者内容。

请求:就是输入一个网址回车后就是请求。

17e906e676944f5782c522800bfdc5e0.png

85594a7dbdd94e85a747beabe3b61843.png 75cd0316402c4a3089510802c6cf8bda.png

a4c53a6261f04a46862d87fbfbe1d9e2.png

在浏览器输入百度网址后,会找到百度的服务器,百度服务器会返回给浏览器一堆 html ,然后浏览器把html代码运行成界面。


五 web请求全过程解析

436b52a99aec435784c9cb6455740471.jpg


六 HTTP协议

表示这个URL地址在数据传输的时候遵循http协议。

什么是协议

两个电脑进行数据传输的时候要遵守的协议,我给你发的数据格式是怎样的,你收到的时候就有规定。解析数据有规则。

因为计算机传输的时候就是一堆0和1,为了数据方便看就要约定好前面多少位数什么,后多少位是什么。

ed93dfd66cb0458296f98d2b47e75ef7.png

超文本传输,传输的是超文本的东西,看到的HTML代码就是超文本,HTML叫超文本标记语言,这个语言写出的叫超文本。

就是http协议传输的是网站的页面源代码。

请求和响应得到的数据格式不一样。

5cfeec03e30748d0bee07146e6146441.png

请求方式:比如 get 。常见的是 get 和 post 。

一般查询东西用get,显式提交,想修改数据的时候,对服务器里面的数据做更改,上传东西用post,隐式提交。

请求头:服务器需要知道你当前这个请求是从哪里来的,你发出请求的浏览器对返回的数据有什么要求,还有一些反爬的内容。和数据没关系。

请求体:放请求的参数。(周杰伦)

4f7a3e5f42d84ee489f65de1a568c97c.jpg

cb5a5541093a42a0ad68f2545b76094e.png状态码:这次请求是否成功,要告诉结果。200:成功,404:丢失 ,500服务器报错,百度机房炸了,302:请求成功了但是真正想要的内容要去另一个地址,重定向。

响应头:放一些客户端可能要用到的信息,比如cookie,数据加密,密钥。

8cc5fea98ed7499db98c9c2983ff00cf.png

18b688cbf20c48adac78f85210d9e382.png

2e90bb6d25624babbddd45f6a66b4ccc.png

30c4d50a9b0845dc8db5116785319c42.png

反爬手段一般都是在请求头和相应头。不同网站这两个头可能不一样。


七 requests模块入门

简化获取页面源代码的过程。

前面案例:from urllib.request import urlopen

用 urlopen 去打开网址。request可以进一步简化步骤。

这个模块不是Python自带的,要安装。

pip install requests,最好在 pycharm 里的 terminal 装。

在浏览器地址栏里面输入的URL都是使用get方式提交。

008dec1008fd45efaf89044c83dfb63e.png

表示成功发送请求和成功收到响应了。

d849c74abaa7484ab577e3dbbc9ec6fd.jpg

f9f66664130447a589ee9f839b523f2a.png 被抓到了,所以要让这个爬虫程序伪装成浏览器。

3113b925b30e499ea0e304b58be9315f.png

682b641c7a9842ef9eb4482717a14c64.png

处理了一个小反爬。

如果默认 requests.get(url) 有一个自动化程序的 user agent ,伪装成浏览器就是加上请求头设备。

612b839e76404a5d8fb8ecf8dc584a72.png

案例演示:获取百度翻译的结果。

F12,然后进入百度翻译界面,再清空network记录。

在翻译框里面输入一个单词,英文输入法。

9c494e515f78463191c17db0502b2ec9.png

f67ada4327a648d0ab35e460d5922191.png

请求方式是post,最下面有一个Form Data,拉开后有个 kw:dog。(没有就是在payload里面)

用post发送请求,发送到参数就是 Form Data 。和get请求传参方式不一样。get发送到参数是query string parameter。重新整理了发送的参数。

get请求参数直接拼接在URL里面,https://sogou.com/web?query=周杰伦。?后面是参数。

post不能用这种方式。

三个sug分给是 d do dog

f66a062f744145379234399b075e5708.png

16a5c6ccf7b747ea9408b30919f1045a.png

9fb40f0ad77943e1b89bec46db78c842.png

4417fedf1839482488c664a775996dcb.png

案例演示:获取百度翻译的结果。

8b10ca8fb1d140259ed874f8ed63bcc3.png

739ec1e6e2f54e9ba5b144c240f33d0c.jpg

 b7f7d71482b346f0a6de3f570520c5b9.png

2cfb3fc9042a44f2bf354b59045e7777.png

要依次查看到底是什么原因。

1.useragent

默认的useragent是

e524afbea297413ebd887d9014e3160c.png

 到浏览器中复制过来改。

25294a28248445deb01e776d470f2ae5.png

 88a7d6bf059f473f9f7c3828c59e65a6.png

每次滚动加载这个start都会递增。

在爬完数据后要resp.close()

如果不关访问的次数过多后再去访问就会报错,你请求的地方被堵死。

创建,写入,关闭三件套

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

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

相关文章

从短视频到AIGC,快手字节重开一局

作者 | 辰纹 来源 | 洞见新研社 从短视频到剪辑工具,从电商到外卖,再到如今的AIGC大模型,快手和字节的竞争从来就没有停止过。 通用大模型方面,快手有快意,字节有豆包;AI图片创作快手有可图,…

docker续3:

一、使用Dockerfile创建应用镜像 在Docker file中定义所需要执⾏的指令,使⽤ docker build创建镜像,过程中会按照dockerfile所定义的内容进⾏打开临时性容器,把docker file中命令全部执⾏完成,就得到了⼀个容器应⽤镜像&#xff…

星河社区升级命令行工具,一站式完成大模型实训

飞桨PFCC社区成员卢畅贡献。卢畅,飞桨 PFCC 成员,飞桨开源之星,飞桨开发者专家(PPDE),长期参加飞桨黑客松、护航计划等开源活动,参与过飞桨执行器预分析性能优化、静态图自动并行架构升级等任务…

SpringBoot项目整合智谱AI + SSE推送流式数据到前端展示 + RxJava得浅显理解

项目背景: 项目背景是一个这个AI答题应用平台,我引入AI得作用就是让AI根据我指定得这个题目的标题和描述来生成一些列的题目。(主要功能是这个,但是还用了AI给我评分,不过这个功能比较简单,在本文就简单介…

python可视化-条形图

1、加载数据 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt# 导入数据 df pd.read_csv(E:/workspace/dataset/seaborn-data-master/tips.csv) df.head()2、基于seaborn的条形图 # 利用barplot函数快速绘制 sns.barplot(x"total_bill&quo…

Python从0到100(五十三):机器学习-决策树及决策树分类器

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能…

中微8S6990 EEPROM踩坑记录

中微8S6990 EEPROM内容丢失解决记录 问题描述: 问题程序如下: void temp_remember(uint16_t temperature,uint16_t address_H,uint16_t address_L) {uint8_t temp,temp1 0;temp temperature>>8;temp1 temperature;FLASH_UnLock();FLASH_Erase_DataArea(address_H);…

虹科方案 | 领航智能交通革新:虹科PEAK智行定位车控系统Demo版亮相

导读: 在智能汽车技术发展浪潮中,车辆控制系统的智能化、网络化已成为行业发展的必然趋势。虹科PEAK智行定位车控系统,集成了尖端科技,能够实现车辆全方位监控与控制的先进系统。从实时GPS定位到CAN/CANFD信号处理,虹科…

漏洞挖掘 | 记一次Spring横向渗透

0x1 前言 这篇文章给师傅们分享下,前段时间的一个渗透测试的一个项目,开始也是先通过各种的手段和手法利用一些工具啊包括空间引擎等站点对该目标公司进行一个渗透测试。前面找的突破口很少,不太好搞,但是后面找到了spring全家桶…

2024.8.27

130124202408271012 DATE #:20240827 ITEM #:DOC WEEK #:TUESDAY DAIL #:捌月廿肆 TAGS < BGM "Dragonflame--Kirara Magic" > < theme oi-contest > < theme oi-data structure Segment > < [空] > < [空] > 渊沉鳞潜&#xff0c…

搜维尔科技:Manus VR高精度手部动作捕捉数据手套为人形机器人、人工智能和人机交互赋能

Manus Quantum数据手套能够提供实时端到端的手部动作数据流与高精度数据集&#xff0c;助力人形机器人实现快速发展。 Quantum量子数据手套采用毫米级精度的磁性指尖跟踪传感器&#xff0c;融入尖端的EMF磁性定位追踪技术&#xff0c;无漂移&#xff0c;能提供高度准确且可靠的…

波导阵列天线学习笔记5 工作在K/Ka频带上的紧凑的共口径双频双圆极化波导天线阵列

摘要: 在本文中&#xff0c;一种紧凑的共口径双频双圆极化天线阵列被提出在K/Ka频段的全双工卫星通信中来实现高增益和宽带宽。所设计的天线阵列可以同时在20GHz频带实现右旋圆极化辐射同时在30GHz频带实现左旋圆极化辐射。此阵列包括圆极化波导天线单元和全公司馈网。脊频谱极…

CTFHub-SSRF过关攻略

第一题&#xff0c;内网访问 一&#xff0c;打开web/ssrf/内网访问 二&#xff0c;进入页面什么都没有查看一下上一步给的参数 三&#xff0c;输入http://127.0.0.1/flag.php回车显示flag 四&#xff0c;然后复制提交&#xff08;恭喜通关&#xff09; 第二题&#xff0c;伪协…

Glide生命周期监听原理以及简单应用利用空Fragment代理Activity

Glide关于生命周期监听的原理解析以及简单应用 文章目录 Glide关于生命周期监听的原理解析以及简单应用1.Glide生命周期监听原理1.1 从Glide初始化开始分析1.2 原理总结 2.简单应用2.1 应用场景1-主题切换之昼夜模式变化监听2.2 应用场景2--SDK打开特定应用或Activity 3.总结 相…

docker的部署及基本用法

目录​​​​​​​ 1 docker 介绍 1.1 什么是docker&#xff1f; 1.2 docker在企业中的应用场景 1.3 docker与虚拟化的对比 1.4 docker的优势 1.5 容器工作方式 2 部署docker 2.1 配置软件仓库 2.2 docker 安装 2.3 配置docker 镜像加速器 2.4 启动服务 2.5 激活内核网络选项…

ctfhub-web-SSRF通关攻略

一、内网访问 1.打开ctfhub给的环境地址 2.观察题目 发现让我们访问127.0.0.1下的flag.php 在地址栏后面有一个url参数 ?urlhttp://127.0.0.1/flag.php 提交即可 二、伪协议读取文件 1.打开ctfhub给的环境 2.观察题目 发现让我们读取flag.php文件 读取文件用到的协议是…

2024最值得购买的耳机?开放式耳机测评

在2024年&#xff0c;多款开放式耳机在市场上备受关注&#xff0c;它们各具特色&#xff0c;满足了不同消费者的需求。今天甜心根据当前市场情况和用户反馈&#xff0c;为大家推荐几款最值得购买的开放式耳机&#xff1a; 虹觅HOLME Fit2 虹觅HOLME Fit2是一款集颜值、舒适度、…

WireShark网络分析~环境搭建

一、虚拟网络设备搭建 &#xff08;一&#xff09;eNSP介绍 网络由网络设备和计算机构成&#xff0c;eNSP是模拟网络拓扑关系的软件。 &#xff08;二&#xff09;eNSP下载 华为官网&#xff1a;https://forum.huawei.com/enterprise/zh/thread/blog/580934378039689216 &am…

2k1000LA 调试4G

问题&#xff1a; 其实算不上 调试&#xff0c; 之前本来4G是好的&#xff0c;但是 我调试了触摸之后&#xff0c;发现4G用不了了。 其实主要是 pppd 这个命令找不到。 首先来看 为什么 找不到 pppd 这个命令。 再跟目录使用 find 命令&#xff0c;能够找到这个命令&#…

python可视化-密度图

1、加载数据 import pandas as pd import numpy as np from sklearn.datasets import load_iris import warnings# 禁用所有警告信息 warnings.filterwarnings(ignore)# 加载数据 iris load_iris() iris iris.keys() df pd.DataFrame(iris.data, columnsiris.feature_names)…