当前位置: 首页 > news >正文

python爬虫入门小案例

python爬虫

以下内容仅供学习交流,请勿用作其他用途,若涉及隐私和版权问题,请及时联系我删除

闲来无事,学了学爬虫小知识,适合入门,文笔拙劣,还望见谅

爬虫是什么:
爬取网页上的文字,图片,视频,音频
自动化操作浏览器,比如填写表单,打卡,提高工作效率
爬虫的注意事项:
爬虫前阅读robots.txt
注意遵守相关法律规定
反爬:防止爬虫程序对网站数据就行爬取
反反爬:破解网站中的反爬机制,获取相关数据
什么是HTTP协议:
HTTP协议:HyperText Transfer Protocol,超文本传输协议,发布和接收HTML的协议,服务器端口号:80端口
HTTPS协议:HTTP协议的加密版本,在HTTP下加入了SSL层,服务器端口号:443

我们平时输入网址时不需要手动输入端口号,浏览器会自动识别,例如下图,CSDN使用的是HTTPS协议,我们可以手动输入:443,按下回车,仍可访问网页

在这里插入图片描述

输入错误的端口号,会加载失败,例如我们输入:80,会显示响应无效

在这里插入图片描述

什么是URL:
URL:Uniform Resource Locator,统一资源定位符
scheme://host:port/path/?query-string=xxx#anchor
scheme:访问的协议,常见的协议:http,https,ftp
host:主机名,域名,比如www.taobao.com
port:端口号,默认80或443
path:查找路径,sz.58.com/chuzu ,这里的chuzu就是path
query-string:查询字符串,www.baidu.com/s?wd=python,后面的wd=python就是查询字符串
anchor:锚点,前端用作页面定位用的,现在一些前后端分离项目,也用锚点来做导航
常见请求方法:

Requests Method:HTTP协议定义了8种请求方法,最常用的四种请求方法:GET, POST, PUT, DELETE,

剩下四种不常用的请求方法:HEAD、‌OPTIONS、‌TRACE和CONNECT,下面介绍一下get请求和post请求

get请求:一般情况下,只从服务器获取数据下来,并不会对服务器资源长生任何影响的时候会使用get请求
post请求:向服务器发送数据(登录),上传文件.会对服务器资源产生影响的时候使用post请求
如何查看请求方式

打开浏览器,进行网页搜索,单击鼠标右键,选择最下方的"检查"

在这里插入图片描述

①选择Network

②刷新网页

③选择第一个文件,点击后就可以查看请求方法是“GET"

在这里插入图片描述

登录界面通常会产生"POST"请求,随便输入账号试一试,显示的是”POST“请求
在这里插入图片描述

请求头参数:
User-Agent:浏览器名称,网络爬虫中经常使用到,请求一个网页时,服务器通过这个参数就可以知道是哪种服务器发送的
通过爬虫发送的请求,User-Agent是Python,为了避免反爬,通常设置为一些浏览器的值来伪装爬虫Referer:表明当前这个请求从哪个url过来的,对于反爬中,如果不是从指定页面过来的,那么就不做相关的响应Cookie:http协议是无状态的,一个人发送了两次请求,服务器没有能力知道这两个请求是否来自同一个人,因此用cookie来做标识,一般想要做登录后才能访问的网站,那么就需要发送cookie信息

在Network中的headers中可以查看User-Agent,Referer和Cookie

在这里插入图片描述

在这里插入图片描述

状态响应码:
状态响应码:Response Code
200:请求正常,服务器正常的返回数据
301:永久重定向,访问www.jingdong.com的时候会重定向到www.jd.com
302:临时重定向,访问一个需要登录的页面的时候,而此时没有登录,那么就会重定向到登录页面
400:请求的url在服务器找不到,即请求url错误
403:服务器拒绝访问,权限不够,或者是被反爬了
500:服务器内部错误,可能是服务器出现bug了,或者宕机了

状态响应码的详解,请看这篇文章:https://blog.csdn.net/2202_75922690/article/details/137112746

爬虫小尝试:
request网页采集

需要在pycharm中安装requests模块

#request网页采集
import requests
keyword=input("请输入搜索关键词:")#指定url
url=f'https://www.baidu.com/s?tn=15007414_15_dg&ie=utf-8&wd={keyword}'
#header要在自己电脑浏览器中找,不是用别人的代码
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'}#网络请求,获得响应
reponse=requests.get(url=url,headers=header)
print(reponse.text)
#写入文件中,在本地找到然后打开就是网页
with open(keyword+'.html','w',encoding='utf-8') as f:f.write(reponse.text)print(f'已下载...{keyword}')

在这里插入图片描述

打开保存的文件,在浏览器中打开,如图:

在这里插入图片描述

post请求爬取翻译

需要用到的模块:import requests,import pprint

在这里插入图片描述

这是动态加载的,当我们输入查询词汇时,发送的是post请求,传回来数据,由于是post请求,需要找到ajax数据,因此要点击Fetch/XHR进行查找
在这里插入图片描述

输入单词anchor,进行查找,注意到sug有好几个,点击第一个sug,发现单词是’a’,点击第二个sug,发现单词是’an’,第三个sug是’anc’,一直到最后一个sug是’anchor’,我们可以发现我们想要找的数据极有可能是在这里面,点击它的Headers,可以查找Request URL,这是我们要请求的URL

在这里插入图片描述

在这里插入图片描述

查看Payload的数据是’kw:anchor’,而Preview里面的数据有anchor,由此我们发现通过数据’kw:anchor’发送post请求就可以拿到包含anchor的数据

import pprint
import requests#导入包
import os
keyword=input('请输入要查询的词汇(输入空格退出):')
url='https://fanyi.baidu.com/sug'
header={'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'}
data={'kw': keyword
}
while keyword!=' ':res = requests.post(url=url, headers=header, data=data)if res.json()['data']==list( ):print('抱歉,没有您要查询的结果,请重新输入')else:pprint.pprint(res.json()['data'][0]['v'])keyword = input('请输入要查询的词汇(输入空格退出):')data = {'kw': keyword}
os.system('pause')

最终运行结果:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输入正确的单词,可以查出意思,输入错误的单词,并不能查到结果,根据程序返回没有查询结果,这样我们的一份小词典软件算是完成了😀

再次声明,以上内容仅供学习交流,请勿用作其他用途

相关文章:

python爬虫入门小案例

python爬虫 以下内容仅供学习交流,请勿用作其他用途,若涉及隐私和版权问题,请及时联系我删除 闲来无事,学了学爬虫小知识,适合入门,文笔拙劣,还望见谅 爬虫是什么: 爬取网页上的文字,图片,视频,音频 自动化操作浏览器,比如填写表单,打卡,提高工作效率爬虫的注意事项: 爬虫…...

【昇腾AI创新大赛集训营南京站学习笔记】-Ascend算子开发课程

昇腾AI创新大赛训练营 14:00-14:30 基础知识-理论课 一、CANN 、达芬奇架构和算子 1.AI Core逻辑架构 达芬奇架构包含三部分: 1)计算类:矩阵计算单元(两个矩阵扔进去相乘)、向量计算单元、标量计算单元 2)控…...

系统架构设计师教程 第4章 信息安全技术基础知识-4.5 密钥管理技术4.6 访问控制及数字签名技术-解读

系统架构设计师教程 第4章 信息安全技术基础知识-4.5 密钥管理技术&4.6 访问控制及数字签名技术 4.5 密钥管理技术4.5.1 对称密钥的分配与管理4.5.1.1 密钥的使用控制4.5.1.1.1 密钥标签4.5.1.1.2 控制矢量4.5.1.2 密钥的分配4.5.1.2.1物理方式14.5.1.2.2 物理方式24.5.1…...

C语言日常练习Day13

目录 一、设半径r1.5,圆柱高h3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积 二、编写程序,用getchar函数读入两个字符给c1,c2,然后分别用putchar函数和printf函数输出这两个字符 三、输入4个整数,要求按由小…...

map、foreach、filter这些方法你还不知道什么时候该用哪个吗?那就看过来

forEach:‌主要用于遍历数组并对每个元素执行某种操作,‌通常用于改变当前数组里的值。‌它不会返回新数组,‌而是直接在原数组上进行操作。‌forEach方法不支持return、‌break、‌continue等语句,‌因为这些语句在forEach中不会…...

6.3 面向对象技术-设计模式

设计模式 创建型模式 结构型模式...

Mac 中安装内网穿透工具ngrok

ngrok 是什么? Ngrok 是一个网络工具,主要用于在网络中创建从公共互联网到私有或本地网络中运行的web服务的安全隧道。它充当了一个反向代理,允许外部用户通过公共可访问的URL访问位于防火墙或私有网络中的web应用程序或服务。Ngrok 特别适用…...

python count返回什么

描述 count() 方法用于统计字符串中某个子字符串出现的次数,可选参数为开始搜索与结束搜索的位置索引。 语法 count() 方法语法: S.count(sub[,start0[,endlen(S)]]) 参数 sub -- 搜索的子字符串。 S -- 父字符串。 start -- 可选参数,…...

mac清理软件哪个好用免费 MacBook电脑清理软件推荐 怎么清理mac

随着使用时间的增长,mac电脑会积累一些不必要的垃圾文件,这些文件会占用宝贵的存储空间,影响电脑的运行速度和稳定性。因此,定期清理mac电脑的垃圾文件是非常有必要的。市场上有许多优秀的Mac清理软件,包括一些出色的国…...

学生党百元蓝牙耳机哪个性价比高?精选四款超强性价比耳机型号

现阶段,蓝牙耳机技术逐渐成熟,蓝牙耳机在我们的学习和娱乐中承担着很重要的角色,那么在面对众多品牌和型号中,学生党们在选择蓝牙耳机上纠结不已,到底学生党百元蓝牙耳机哪个性价比高?作为一个蓝牙耳机重度…...

中文之美,美在辞藻富丽,也美在情感含蓄内敛。

文章目录 引言句句不提幸福,句句都是幸福句句不提释怀,句句都是释怀句句不提爱意,句句都是爱意句句不提安慰,句句都是安慰句句不提遗憾,句句都是遗憾句句不提思念,句句都是思念引言 许多句子没有将主题直抒胸臆,却通过字词间的呼应、碰撞,让人感受到“言未表而意无穷”…...

FPGA与ASIC:深入解析芯片设计的双子星

前言 在半导体世界里,FPGA(Field-Programmable Gate Array,现场可编程门阵列)与ASIC(Application-Specific Integrated Circuit,专用集成电路)是两种截然不同的芯片设计策略,各自在…...

深入 Symfony 服务容器:依赖注入的艺术

“深入 Symfony 服务容器:依赖注入的艺术” 是一个涵盖了 Symfony 服务容器核心概念和依赖注入机制的复杂话题。为了全面理解 Symfony 服务容器的运作,我们将详细探讨以下几个方面: 服务容器的概念和作用依赖注入的基本原理Symfony 服务容器…...

基于Java+SpringMvc+Vue技术的慈善捐赠平台设计与实现(源码+LW+部署讲解)

项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功以及课程答疑! 软件开发环境及开发工具: 操作系统:Windows 10、Windows 7、Windows 8 开发语言:java 前端技术:JavaScript、VUE.j…...

dsp c6657 SYS/BIOS学习笔记

1 SYS/BIOS简介 SYS/BIOS是一种用于TI的DSP平台的嵌入式操作系统(RTOS)。 2 任务 2.1 任务调度 SYS/BIOS任务线程有0-31个优先级(默认0-15,优先级0被空闲线程使用,任务最低优先级为1,最高优先级为15&am…...

分布式搜索引擎ES-DSL搜索详解

1.DSL搜索-入门语法 建立索引: xxx(自定义名称) 自定义mapping: POST /shop/_mapping {"properties": {"id": {"type": "long"},"age": {"type": "integer"},"username": {&quo…...

vue zip文件下载请求封装与使用

axios封装(重点是响应拦截) 这里把响应超时时间注释是文件下载接口返回需要较长时间 import axios from axios import {ElMessageBox} from "element-plus"; import router from "/router";const service axios.create({baseURL: …...

Windows波形音频MMEAPI简介

Windows波形音频MMEAPI简介 使用MMEAPI时需要导入头文件&#xff1a;#include<mmeapi.h> mmeapi.h文件的主要内容 mmeapi.h 文件是 Windows 多媒体 API 的一部分&#xff0c;主要用于处理波形音频&#xff08;Waveform Audio&#xff09;的输入和输出。以下是该文件的…...

sklearn聚类算法用于图片压缩与图片颜色直方图分类

上期文章:机器学习之SKlearn(scikit-learn)的K-means聚类算法 我们分享了sklearn的基本知识与基本的聚类算法,这里主要是机器学习的算法思想,前期文章我们也分享过人工智能的深度学习,二者有如何区别,可以先参考如下几个实例来看看机器学习是如何操作的 不同K值下的聚…...

Llama 3.1要来啦?!测试性能战胜GPT-4o

哎呀&#xff0c;Meta声称将于今晚发布的Llama 3.1&#xff0c;数小时前就在Hugging Face上泄露出来了&#xff1f;泄露的人很有可能是Meta员工&#xff1f; 还是先来看泄露出来的llama3.1吧。新的Llama 3.1模型包括8B、70B、405B三个版本。 而经过网友测试&#xff0c;该base…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...