Python爬虫知识体系-----requests-----持续更新

数据科学、数据分析、人工智能必备知识汇总-----Python爬虫-----持续更新:https://blog.csdn.net/grd_java/article/details/140574349

文章目录

  • 一、安装和基本使用
  • 二、get请求
  • 三、post请求
  • 四、代理

一、安装和基本使用

  1. 和解析库urllib几乎一摸一样,但是有些业务场景,用request更加方便

最好对比utllib学习:https://blog.csdn.net/grd_java/article/details/140589367

  1. 官方文档:https://requests.readthedocs.io/projects/cn/zh-cn/latest/
安装requests
  1. 执行命令pip install requests即可安装
    在这里插入图片描述
  2. 代码中导包不报错表示安装成功
    在这里插入图片描述
基本使用
'''导包(start)'''
import requests
'''导包(end)'''
url = 'http://www.baidu.com'
# 通过get方式请求url
response = requests.get(url)
# 设置编码格式
response.encoding = 'utf-8'
# response对象的类型为Response类型,和urllib的HttpResopnse对象是不一样的
print(type(response))
# 以字符串形式返回网页源码
print(response.text)
# 获取响应状态码
print(response.status_code)
# 获取请求的url
print(response.url)
# 获取响应头
print(response.headers)
# 获取响应的字节类型
print(response.content)

二、get请求

同样是百度,例如百度北京看搜索结果。requests库作为独属于python的,是不需要像urllib一样对参数编码的


在这里插入图片描述

'''导包(start)'''
import requests
'''导包(end)'''url = 'http://www.baidu.com/s?' # 路径中的?可加可不加
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"}
data = {'wd':'北京'
}
# def get(url, params=None, **kwargs):
# url       请求资源路径
# params    参数
# kwargs    字典
response = requests.get(url=url, params=data, headers=headers)
content = response.text
print(content)

可见对比urllib有以下几点不同


  1. 参数使用params传递
  2. 参数无需urlencode编码
  3. 不需要请求对象的定制
  4. 请求资源路径(url)中的?可以加也可以不加

三、post请求

我们使用讲解urllib中的百度翻译的案例,看看实现同样的效果和urllib有何区别
在这里插入图片描述

  1. post请求,不需要编解码
  2. 请求参数是经典的data
  3. 不需要请求对象的定制
'''导包(start)'''
import requests
'''导包(end)'''url = 'https://fanyi.baidu.com/sug'
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"}
data = {"kw":"spider"
}
# def post(url, data=None, json=None, **kwargs):
# url       请求资源路径
# data      参数对象
# json      json对象
# kwargs    字典
# 我们以传输data对象为例,传输json同理,将data换成json即可
response = requests.post(url=url, data=data, headers=headers)
content = response.text
# 因为content返回的不是utf-8编码格式,我们看起来比较费劲
# 通过json库将其转为utf-8
import json
obj = json.loads(content)
print(obj)

四、代理

依然和urllib完全一样的操作
在这里插入图片描述

'''导包(start)'''
import requests
'''导包(end)'''url = 'http://www.baidu.com/s?'
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"}
data = {"wd":"ip"
}
# 1. 获取代理handler对象,并指定代理ip字典proxies
proxies = {'http': '218.87.205.38:20433',
}
response = requests.get(url = url, params=data, headers=headers,proxies=proxies)
content = response.text
with open('daili.html','w',encoding='utf-8') as fp:fp.write(content)

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

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

相关文章

操作系统OS--进程

目录 操作系统是什么 进程 进程的状态 1.并行和并发 2.时间片 进程优先级 进程切换 task_struct内容分类: 操作系统是什么 操作系统本质上是一款纯正的“搞管理”的软件 你的程序不能直接写入硬件,都必须通过操作系统 对软硬件之间进行交互&…

C语言 strlen 函数 - C语言零基础入门教程

目录 一.strlen 函数简介二.strlen 函数实战三.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.strlen 函数简介 在C 语言中,char 字符串也是一种非常重要的数据类型,我们可以使用 strlen 函数获取字符串长度;…

地面沉降数值模拟的最新进展与研究动态

地面沉降,由自然或人为因素引起的地表垂直位移现象,对城市规划、交通基础设施、建筑工程和环境地质学等多个领域产生深远影响。它不仅威胁着城市建筑安全和交通运行,还对环境和经济发展构成挑战。掌握地面沉降的理论知识和实践技能至关重要。…

如何选择适合的谷歌SEO服务避免踩坑?

在选择SEO服务时,很多企业担心花了钱却看不到效果。市面上确实有一些不靠谱的服务商,他们承诺短时间内实现排名飙升,但最终结果往往不尽如人意。那么,如何判断SEO服务的真假呢 首先,靠谱的SEO公司一定能提供真实的案例…

【OpenGL】OpenGL简介

文章目录 OpenGL概述OpenGL的本质OpenGL相关库核心库窗口管理glutfreeglutglfw 函数加载glewGLAD OpenGL概述 OpenGL(Open Graphics Library) 严格来说,本身并不是一个API,它是一个由Khronos组织制定并维护的规范(Specification)。OpenGL规范严格规定了…

算法闭关修炼百题计划(六)

塔塔开(滑稽 1.删除排序链表中的重复元素2.删除排序链表中的重复元素II3.字典序的第k小数字4.下一个排列5.排序链表6.随机链表的复制7.数据流的中位数 1.删除排序链表中的重复元素 使每个元素就出现一次 class Solution { public:ListNode* deleteDuplicates(ListNode* head)…

实习冲刺第二十天

543.二叉树的直径 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1: 输入:root …

搜索引擎算法解析提升搜索效率的关键要素

内容概要 搜索引擎算法是指一系列计算机程序和规则,用于决定如何抓取、索引和提供网页信息。了解这些算法的核心概念对于提高我们的搜索效率至关重要。本文将详细分析搜索引擎的工作原理和主要算法类型,以及它们如何影响搜索结果的准确性和用户体验。 …

Brave127编译指南 Windows篇:配置Git(四)

1. 概述 在Brave浏览器的开发过程中,Git作为核心版本控制工具扮演着不可或缺的角色。作为当今最广泛使用的分布式版本控制系统,Git为开发者提供了强大的源码管理能力。通过Git,您可以轻松追踪代码变更、管理不同版本,并与其他开发…

使用React和Vite构建一个AirBnb Experiences克隆网站

这一篇文章中,我会教你如何做一个AirBnb Experiences的克隆网站。主要涵盖React中Props的使用。 克隆网站最终呈现的效果: 1. 使用vite构建基础框架 npm create vitelatestcd airbnb-project npm install npm run dev2. 构建网站的3个部分 网站从上…

LC68----222. 完全二叉树的节点个数(java版)---树

1. 题目描述 完全二叉树的节点个数 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点…

206面试题(71~80)

208道Java面试题 文章目录 **208道Java面试题** **71. 如何避免 SQL 注入?****72. 什么是 XSS 攻击,如何避免?****73. 什么是 CSRF 攻击,如何避免?****74. throw 和 throws 的区别?****75. final、finally、…

快速安装mysql5.7.44

参考文档: Windows系统上安装MySQL 5.7步骤(实测可行)_mysql5.7 windows-CSDN博客 MySQL 5.7压缩包安装图文教程(超详细)_Mysql_脚本之家 关键点: 参数文件内容参考: ALTER USER rootlocalhost IDENTIFIED WITH mys…

大数据新视界 -- 大数据大厂之 Impala 性能提升:高级执行计划优化实战案例(下)(18/30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

数字经济新时代,高校数字经济专业人才培养如何与产业对接?

一、数字经济发展及人才需求 (一)数字经济蓬勃发展 数字经济已成为驱动中国经济实现发展的新引擎,据中国信通院数据,2023年,我国数字经济规模达到53.9万亿元,数字经济占GDP比重达到42.8%&#x…

【SpringBoot】21 @Async异步任务线程池的隔离

Git仓库 https://gitee.com/Lin_DH/system 介绍 线程池隔离:指一种通过为每个服务提供独立的线程池来隔离服务之间的资源和执行环境的做法。 为什么需要线程池隔离? 资源隔离,每个服务都有独立的线程池,可以避免由于某个服务的…

Python进行GRPC和Dubbo协议的高级测试

在微服务架构日益流行的今天,分布式系统的复杂性不断增加。GRPC 和 Dubbo 协议作为当今互联网行业中常见的高性能通信协议,已经成为服务之间交互的核心。然而,随着服务调用层次的不断增加,如何有效地测试这两种协议,确…

【启明智显分享】5G CPE为什么适合应用在连锁店中?

连锁门店需要5G CPE来满足其日益增长的网络需求,提升整体运营效率和竞争力。那么为什么5G CPE适合连锁店应用呢,小编为此做了整理,主要是基于以下几个方面的原因: 一、高效稳定的网络连接 1、高速数据传输: 5G CPE能…

私域运营流程框架

蝴蝶模型的作用主要体现在以下几点: 1. 提供清晰的运营思路:使运营人员能够全面、系统地规划和执行私域运营策略,避免盲目和混乱。 2. 实现精准营销:通过分层分类,能够针对不同用户群体制定个性化的营销策略&#xff0…

Python中的面向对象编程,类,对象,封装,继承,多态

一、面向对象编程 1.面向过程和面向对象 面向过程和面向对象都是一种编程方式,只不过再设计上有区别。 面向过程 C语言 细分成每一个过程 优点:简单直观、性能高效、代码简洁。 缺点:不易维护、不易扩展、代码重用性低。 面向对象 p…