Python爬虫(入门版)

1、爬虫是什么

         简单的来说:就是用程序获取网络上数据。

2、爬虫的原理

        如果要获取网络上数据,我们要给爬虫一个网址(程序中通常叫URL),爬虫发送一个HTTP请求给目标网页的服务器,服务器返回数据给客户端(也就是我们的爬虫),爬虫再进行数据解析、保存等一系列操作。

3、爬虫基本流程

用户获取网络数据的方式:

        方式1:浏览器提交请求—>下载网页代码—>解析成页面

        方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

爬虫要做的就是方式 2。

3.1、发起请求

使用http库向目标站点发起请求,即发送一个Request

Request包含:请求头、请求体等

Request模块缺陷:不能执行JS 和CSS 代码

3.2、获取响应内容

如果服务器能正常响应,则会得到一个Response

Response包含:html,json,图片,视频等

3.3、解析内容

解析html数据:正则表达式(RE模块)、xpath(主要使用)、beautiful soup、css

解析json数据:json模块

解析二进制数据:以wb的方式写入文件

3.4、保存数据

数据库(MySQL,Mongdb、Redis)或 文件的形式。

4、爬虫代码

# 导入requests模块,设置 url为百度翻译网页的网址。
import requestsdef English_Chinese():url = "https://fanyi.baidu.com/sug"s = input("请输入要翻译的词(中/英):")dat = {"kw":s}resp = requests.post(url,data = dat)# 发送post请求ch = resp.json() # 将服务器返回的内容直接处理成json => dictresp.close()dic_lenth = len(ch['data'])for i in range(dic_lenth):print("词:"+ch['data'][i]['k']+" "+"单词意思:"+ch['data'][i]['v'])

主要使用requests库

5、学习资源与经验总结

学习爬虫需要掌握以下几个方面:

  1. 编程语言:Python是目前最常用的爬虫语言,因此需要掌握Python的基本语法和常用的库。
  2. 基础知识:需要了解计算机网络的基本知识,包括HTTP协议、TCP/IP协议、DNS协议等。
  3. 爬虫框架:学习使用一些爬虫框架,如Scrapy、BeautifulSoup等,可以加快爬虫的开发速度。
  4. 浏览器抓包:学习使用抓包工具,如Fiddler、Wireshark等,可以帮助理解网站的数据传输过程。
  5. 反爬机制:了解网站的反爬机制,如封IP、封账号、封代理等,可以帮助避免被网站禁止访问。
  6. 数据清洗:学习使用数据清洗工具和方法,如正则表达式、BeautifulSoup等,可以帮助处理不同格式的数据。
  7. 法律法规:了解相关法律法规,如个人信息保护法、知识产权法等,避免侵犯他人的合法权益。

另外:

  1. python学习路线:很多网站都有免费的学习路径,这里不在赘述,例如python学习路线
  2. 很多网站对IP的要求很高,短时间请求十几次就会遭关进小黑屋。明显是网站进行了反爬处理:限制IP请求频率。这个时候,我们只有加代理进行访问请求了。这里推荐一款最近发现的代理商家:协采云IP池

         

        如果大量访问某个网站,一个稳定的代理访问是必不可少的。

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

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

相关文章

jdbc的工具类和三层架构模型

jdbc工具类 由于JDBC的注册驱动,连接数据库,关闭资源的步骤是相同的,所以我们可以写一个JDBC工具类。 /* 工具类: 私有化构造方法 提供静态方法*/ public class jdbcUtil {private final static String DRIVER "com.mysql…

Java设计模式 _创建型模式_建造者模式(Builder)

一、建造者模式 1、建造者模式(Builder Pattern)是一种创建对象的设计模式。它允许你使用不同的构建策略来创建复杂对象。通常是在复杂类中通过静态内部类(Builder)来进行构建。 2、实现思路: (1&#xf…

异地组网、网络部署、无线覆盖,贝锐蒲公英一步到位

面对网络架构复杂的企业总部,分散在各地的分支机构,以及出差的远程办公人员,如何才能高效异地组网? 为了确保总部、分部网络实现远程稳定、高速互访,以及远程人员安全访问总部业务系统,基于自研SD-WAN的贝…

C++ 小游戏:战斗之旅

一、游戏名称:战斗之旅 游戏规则 角色选择:玩家可以选择不同的角色,每个角色都有不同的属性和技能。商城:玩家可以访问商城购买不同的装备,包括武器和回复物品。战斗:玩家可以与其他角色进行战斗。在战斗…

极语言在全屏游戏中,按住D同时按X键,松开X键,再松开D键的程序

程序段 模拟按键(布尔 按住D, 布尔 按住X); 定义按键常量整数 VK_D 0x44整数 VK_X 0x58; 检测D和X键是否同时按住如果(按住D 和 按住X){; 模拟松开X键按键消息(VK_X, 0, 0, "keyup"); 模拟松开D键(稍后一些执行,以确保X键先松开)…

使用Docker搭建Nacos集群

本次是在Mac的M1版本上使用Docker搭建Nacos集群的详细步骤,并记录了一些遇到的问题及解决方案。 搭建涉及:1个Nginx 3个Nacos 1个MySQL 使用版本:Nginx为1.22.0,Nacos为2.0.3,MySQL为8.0.30 一、创建虚拟网络 因为M…

数据结构(01)——链表OJ

目录 移除链表元素 思路1 不创建虚拟头节点 思路2 创建虚拟头节点 反转链表 寻找链表中间节点 判断链表是否相交 回文链表 环形链表 环形链表|| 移除链表元素 . - 力扣(LeetCode) 要想移除链表的元素,那么只需要将目标节点的前一…

XMind轮播图banner测试点

banner测试点 显示1到5张banner图片 [1,5] 6 1 一张不轮播 5 3 0可选 自动轮播,3秒切换一张 鼠标悬停,不轮播 实心为当前图 点击可以跳转 点击左,切换一张图片 点击右, 切换一张图片…

Arch Linux安装macOS

安装需要的包 sudo pacman -S qemu-full libvirt virt-manager p7zip yay -S dmg2img安装步骤 cd ~ git clone --depth 1 --recursive https://github.com/kholia/OSX-KVM.git cd OSX-KVM # 选择iOS版本 ./fetch-macOS.py #将上一步下载的BaseSystem.dmg转换格式 dmg2img -…

【Git】如何在.gitignore忽略已经被上传到git上的文件,并且同步到线上

【Git】如何在.gitignore忽略已经被上传到git上的文件,并且同步到线上 如果你想要 .gitignore 忽略已经上传到 Git 仓库的文件,但是希望在远程仓库上也排除这些文件,你需要执行以下步骤: 更新 .gitignore 文件: 首先,…

【中级软件设计师】上午题12-软件工程(3):项目活动图、软件风险、软件评审、软件项目估算

【中级软件设计师】上午题12-软件工程(3) 1 软件项目估算1.1 COCOMO估算模型1.2 COCOMOⅡ模型 2 进度管理2.1 gantt甘特图2.2 pert图2.3 项目活动图2.3.1 画项目图 3 软件配置管理4 软件风险4.1 风险管理4.2 风险识别4.3 风险预测4.4 风险评估4.5 风险控…

Baidu comate智能编程助手评测

Baidu comate智能编程助手评测 作者:知孤云出岫 目录 一. 关于comate产品 二. 关于comate产品体验 三. 关于实际案例. 四. 关于baidu comate编程助手的实测体验感悟 五. …

Java包装类,128陷阱

包装类 基本数据类型都有自己对应的包装类,因为Java本质是面向对象编程的,一切的内容在Java看来都是对象 但是基本数据类型没有类,也没有对象,这样就有了矛盾 所以诞生了基本类型的包装类 基本数据类型: byte,short,…

014、Python+fastapi,第一个后台管理项目走向第14步:建立python+fastapi项目,创建common通用模块

一、说明 通用模块主要是完成文件的上传下载,抄吧,要不然怎么叫通用模块呢? 我把RuoYi-Vue3-FastAPI中的验证码模块放在这里了,我觉得验证也比较通用吧, 二、添加common通用模块 1、通用模块没有数据表&#xff0c…

冯喜运:4.30现货黄金涨跌互现,最新黄金原油趋势分析

【黄金消息面分析】:上周五公布的数据,美国3月核心PCE年率维持前值不变,美国4月一年期通胀率预期上升,显示通胀顽固并有所回升,但其经济数据美国3月个人支出月率和美国4月密歇根大学消费者信心指数终值则低于预期和前值…

WEB攻防-PHP特性-metinfoCMS审计实例

前置知识&#xff1a;PHP函数缺陷 测试环境&#xff1a;MetInfo CMS 函数缺陷导致的任意文件读取 漏洞URL&#xff1a;/include/thumb.php?dir 漏洞文件位置&#xff1a;MetInfo6.0.0\app\system\include\module\old_thumb.class.php <?phpdefined(IN_MET) or exit(No…

深度学习 --- stanford cs231学习笔记(一)

stanford cs231学习笔记(一) 1&#xff0c;先是讲到了机器学习中的kNN算法&#xff0c;然后因为kNN分类器的一些弊端&#xff0c;引入了线性分类器。 kNN算法的三大弊端&#xff1a; (1)&#xff0c;计算量大&#xff0c;当特征比较多时表示性差 (2)&#xff0c;训练时耗时少…

慢SQL问题全解析:原因诊断与性能优化策略

慢SQL的定义&#xff1a; 执行时间长的 慢SQL的筛选&#xff1a; 1.使用MySQL自带的日志 查看慢查询日志是否开启&#xff1a; SHOW VARIABLES LIKE %slow_query_log%; 开启慢查询日志&#xff1a;使用该方法开启MySQL的慢查询日志只对当前数据库生效&#xff0c;如果MySQ…

HF区块链链码基础

链码生命周期 一 . 链码准备 准备文件 . 在测试目录下创建chaincode,拷贝测试链码进 chaincode目录,拷贝 set-env.sh 脚本进 scripts 目录 二. 打包链码 打包测试链码 export FABRIC_CFG_PATH${PWD}/config peer lifecycle chaincode package ./chaincode/chaincode_basic.…

Centos7使用Nginx配置HTTPS正向代理

Centos7使用Nginx配置HTTPS正向代理 Nginx默认安装只支持代理HTTP, 不支持代理 HTTPS, 如果需要支持HTTPS需要在Nginx编译时加入 ngx_http_proxy_connect_module. 文件准备 从 ngx_http_proxy_connect_module 模块仓库下载源代码压缩包, 并确定支持的 Nginx 版本 仓库地址: …