位置: IT常识 - 正文

4.网络爬虫—Post请求(实战演示)(“网络爬虫”)

编辑:rootadmin
4.网络爬虫—Post请求(实战演示) 网络爬虫—Post请求实战演示POST请求GET请求POST请求和GET请求的区别获取二进制数据爬[百度官网](https://www.baidu.com/)logo实战发送post请求百度翻译实战使用session发送请求模拟登录17k小说网常见问题

推荐整理分享4.网络爬虫—Post请求(实战演示)(“网络爬虫”),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:网络爬虫实战,网络爬虫全解析:技术、原理与实践,网络爬虫入门,网络爬虫全解析:技术、原理与实践,网络爬虫全解析:技术、原理与实践,网络爬虫入门,网络爬虫全解析,网络爬虫实现,内容如对您有帮助,希望把文章链接给更多的朋友!

前言: 📝​📝​此专栏文章是专门针对Python零基础爬虫,欢迎免费订阅! 📝​📝第一篇文章获得全站热搜第一,python领域热搜第一,欢迎阅读! 🎈🎈欢迎大家一起学习,一起成长!! 💕💕:悲索之人烈焰加身,堕落者不可饶恕。永恒燃烧的羽翼,带我脱离凡间的沉沦。

POST请求

Python中的POST请求是HTTP协议中的一种请求方法,用于向服务器提交数据。与GET请求不同,POST请求将数据封装在请求体中,而不是在URL中传递。通常情况下,POST请求用于向服务器提交表单数据、上传文件等操作。 示例代码如下:

import requestsurl = 'http://example.com/api/data'data = {'name': 'John', 'age': 25}response = requests.post(url, data=data)print(response.text)

这个例子中,我们向http://example.com/api/data这个URL发送了一个POST请求,请求体中包含了name和age两个字段的数据。服务器接收到请求后,可以根据数据进行相应的处理,并返回响应结果。response.text表示服务器返回的文本内容。

GET请求

Python中的GET请求也是HTTP协议中的一种请求方法,用于向服务器请求数据。与POST请求不同,GET请求将数据以查询字符串的形式附加在URL后面,而不是封装在请求体中。通常情况下,GET请求用于向服务器请求某个资源,比如获取网页、图片、视频等。 示例代码如下:

import requestsurl = 'http://example.com/api/data?id=123'response = requests.get(url)print(response.text)

这个例子中,我们向http://example.com/api/data这个URL发送了一个GET请求,查询字符串中包含了id=123的参数。服务器接收到请求后,根据参数返回相应的数据,response.text表示服务器返回的文本内容。

POST请求和GET请求的区别

(1)post请求更安全

不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中,get请求的是静态资源,则会缓存,如果是数据,则不会缓存

(2)post请求发送的数据更大

get请求有url长度限制,http协议本身不限制,请求长度限制是由浏览器和web服务器决定和设置

(3)post请求能发送更多的数据类型

get请求只能发送ASCII字符

(4)传参方式不同

get请求参数通过url传递,post请求放在request body中传递

(5)get请求产生一个TCP数据包;post请求产生两个TCP数据包

get请求,浏览器会把http header和data一并发送出去,服务器响应200返回数据;post请求,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 返回数据

获取二进制数据爬百度官网logo实战

快速找到图片链接位置

右键空白处 --> 检查 --> 鼠标附魔 --> 点击图片找到对应的链接 需要确认和检查图片链接是否完整

确认目标!!!

右键空白处 --> 检查 --> 鼠标附魔 --> 点击图片找到对应的链接

点开链接后,里面有三条链接,到底哪一个是我们需要的,我们需要一个一个点开看。

接着就是敲代码,把照片获取到本地。

代码如下:

import requests# 确认数据的链接url = 'https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png'# headers 90%情况下是不需要的,特别是图片 (当获取不到图片数据的时候才加上请求头数据)# print(image.content)# 获取响应对象的进制数据data = requests.get(url)f = open("百度logo.png", 'wb') # 把数据保存到文件中f.write(data.content)f.close()4.网络爬虫—Post请求(实战演示)(“网络爬虫”)

导入requests库,用于发送HTTP请求和获取响应数据。 定义一个URL变量,表示要下载的图片的链接。 使用requests.get()方法发送GET请求,获取图片的二进制数据。 打开一个文件(这里是百度logo.png),使用wb模式打开,表示以二进制写入模式打开文件。 将获取到的二进制数据写入文件中。 关闭文件。 最终,运行这段代码会在当前目录下生成一个名为百度logo.png的图片文件,内容为从指定URL下载的图片。

发送post请求百度翻译实战

1.确认爬虫的流程(获取数据的时候,根据流程操作)

找数据(先到网页源代码里面找数据) 如果数据不在网页源代码 数据在哪里? 如何快速找到数据并确认它? 三种方法 筛选 刷新 搜索

筛选:

刷新

搜索

找到数据了!!!

通过三种方式找到数据,接下来写代码拿出我们想要的数据

import requestsurl = 'https://fanyi.baidu.com/v2transapi?from=zh&to=en'headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36', 'Cookie': 'BIDUPSID=12D9950A2673951B2629A85BC6A1EA8E; PSTM=1677676852; BAIDUID=12D9950A2673951B0F0D1B4587FF5EA1:FG=1; BDUSS_BFESS=JXTmpvVEtVSWxtRTVwY3dJbXA1b2h5Vk5xeVQzLTlFS25tblUyQWl3Vm9uRHBrSUFBQUFBJCQAAAAAAAAAAAEAAADA4O~RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgPE2RoDxNkdD; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; APPGUIDE_10_0_2=1; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; BA_HECTOR=25202k0g2ga524210k2ha08k1i1d89t1m; ZFY=rLRjwO2KKciLyDaiAWkUkVrYFXcodJI9dLOc263KUTI:C; BAIDUID_BFESS=12D9950A2673951B0F0D1B4587FF5EA1:FG=1; BDRCVFR[bPTzwF-RsLY]=mk3SLVN4HKm; H_PS_PSSID=; PSINO=5; delPer=0; BCLID=11200678177449842076; BCLID_BFESS=11200678177449842076; BDSFRCVID=WOkOJexroG07VWbfQIXxU9c9ruweG7bTDYrEOwXPsp3LGJLVFe3JEG0Pts1-dEu-S2OOogKKQgOTHRkF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; BDSFRCVID_BFESS=WOkOJexroG07VWbfQIXxU9c9ruweG7bTDYrEOwXPsp3LGJLVFe3JEG0Pts1-dEu-S2OOogKKQgOTHRkF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=tRAOoC_-tDvDqTrP-trf5DCShUFsLMRWB2Q-XPoO3KtbSx3PblQzWbkAef-8bJQf5mkf3fbgy4op8P3y0bb2DUA1y4vp0tLeWeTxoUJ2-KDVeh5Gqq-KXU4ebPRiQ4b9QgbNBhQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0HPonHj_KjToL3q; H_BDCLCKID_SF_BFESS=tRAOoC_-tDvDqTrP-trf5DCShUFsLMRWB2Q-XPoO3KtbSx3PblQzWbkAef-8bJQf5mkf3fbgy4op8P3y0bb2DUA1y4vp0tLeWeTxoUJ2-KDVeh5Gqq-KXU4ebPRiQ4b9QgbNBhQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0HPonHj_KjToL3q; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1679039134,1679143234,1679204636,1679231203; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1679231203; ab_sr=1.0.1_MzRlMjk2ZGYwYzRhNzk5MGY1MjA2NDc5OWFkY2MwYjM0ZTQxOGYyYjczNWQyOTE0MWJhYTkxNmJmZWFiYTU4ZmRjZjcxZjhmZDNlZmVkYWZhMmY4MmQwYjYyYWE5M2RhYjIzMjYyNTMzNzBmYjcyMzMyNTVkMjRiMTBkZjI3MmE2YjgzNDU4YmY4Mjc5ZWRhODY1NzkxMzc5MjBiMTBhYmE0NGE0NTY2MTY5MzI2ODQ1MzQ1ZGJhYTY4YTMzOGZj', 'Acs-Token': '1679231203273_1679231215801_TZnmUVeLuVlVCXU675lmFL7KXT+qZWTpNkvwrKj1/azwt2t9OYJni7f/HuDsQoPprquOTaEto81VaJEnjHeY/FjtVICpqxnDHWZZbIWO5NltIttKh4Bg74eYS7b86eVzcvVgkIDn9kR9V13wNYJyyapcvo2SeSLf1OWzc9Y0Byn3v/R+0hUvgWoAd0PsAxSkwy4kv4D+aDQFmy1SwM4P9tMy010GUgQspRcT3FBQ0bFWL67oAwYBkbqrJ2+I6G0i4wh67+uBxO73nn+I3M1dH4MZml16j0bU7rzdGDf2gI6HIM2vmwuAlARmYZJvPNmiaDgnaqbImC8kfXZGptQuTMp/8MK13wJULF//+k6HxoM='}data = { 'from': 'zh', 'to': 'en', 'query': '西瓜', 'transtype': 'translang', 'simple_means_flag': '3', 'sign': '550632.820697', 'token': '89c89225cdb36e24dea4bcf09eed1996', 'domain': 'common'}rest = requests.post(url, headers=headers, data=data)trans_dict = rest.json()print(trans_dict['trans_result']['data'][0]['dst'])print(trans_dict['trans_result']['data'][0]['src'])

拿到我们的数据了

使用session发送请求模拟登录17k小说网

先了解本次实战目标 我们的目标就是通过模拟登录然后获取账户个人主页的内容

接下来开始找数据,账号密码,方便我们登录个人主页

找到数据后,我们开始写代码

import requestsfrom requests import Sessionsession = requests.Session()url = "https://passport.17k.com/ck/user/login"headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',}data = { 'loginName': '以山河作礼', 'password': '********'}# session对象登录,记录登录的状态html = session.post(url=url, headers=headers, data=data)print(html.json())

运行代码,看看我们是否登录成功。

看到我们的登录昵称,说明我们登录成功了,接下来我们通过代码进入个人主页

import requestsfrom requests import Sessionsession = requests.Session()url = "https://passport.17k.com/ck/user/login"headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36',}data = { 'loginName': '以山河作礼', 'password': '******'}# session对象登录,记录登录的状态html = session.post(url=url, headers=headers, data=data)print(html.json())# session对象的登录的状态去请求url_main = 'https://user.17k.com/www/'html = session.get(url_main, headers=headers)html.encoding = 'utf-8'print(html.text)

运行结果:

我们得到了个人主页的html页面代码,在里面我们可以看到,最近阅读和最近收藏等,说明我们本次成功的获取了想要的数据。

常见问题

获取不到需要的数据

增加cookie等其他比较重要的请求头信息

获取的数据是乱码状态

写Accept-Encoding 容易乱码 请求头里面不要写

html = requests.get(url,headers=head_data) html.encoding = 'utf-8' # 解决数据乱码

🍁 🍁今日学习笔记到此结束,感谢你的阅读,如有疑问或者问题欢迎私信,我会帮忙解决,如果没有回,那我就是在教室上课,抱歉。 🍂🍂🍂🍂

本文链接地址:https://www.jiuchutong.com/zhishi/287148.html 转载请保留说明!

上一篇:Vite如何配置路径别名(vite config)

下一篇:win7系统更改属性OEM信息与还原的方法(win7系统更改属性内存信息的方法有哪些)

  • 魅族 18 Pro的重量是多少(魅族18 pro使用感受)

    魅族 18 Pro的重量是多少(魅族18 pro使用感受)

  • 英特尔和酷睿什么区别(英特尔酷睿什么区别)

    英特尔和酷睿什么区别(英特尔酷睿什么区别)

  • ipad视频压缩失败怎么回事(ipad 视频压缩)

    ipad视频压缩失败怎么回事(ipad 视频压缩)

  • ipaid怎么使用多屏(ipad多用户怎么设置)

    ipaid怎么使用多屏(ipad多用户怎么设置)

  • b站怎么关注直播间(bilibili如何关注直播间)

    b站怎么关注直播间(bilibili如何关注直播间)

  • 后壳开胶会影响手机吗(后壳开胶会影响保修吗)

    后壳开胶会影响手机吗(后壳开胶会影响保修吗)

  • 网线接路由器哪个口(网线接路由器哪个口上网)

    网线接路由器哪个口(网线接路由器哪个口上网)

  • 华为手机有没有定位系统(华为手机有没有实况拍照)

    华为手机有没有定位系统(华为手机有没有实况拍照)

  • 苹果手机LTE怎么弄成4g(苹果手机lte怎么改成4g 个人热点)

    苹果手机LTE怎么弄成4g(苹果手机lte怎么改成4g 个人热点)

  • 路由器wps按了怎么办(路由器wps按钮按了有没有事)

    路由器wps按了怎么办(路由器wps按钮按了有没有事)

  • 华为荣耀20i怎么长截屏(华为荣耀20i怎么拆后盖)

    华为荣耀20i怎么长截屏(华为荣耀20i怎么拆后盖)

  • 蜂鸟众包收入第二天几点到账(蜂鸟众包2021单价)

    蜂鸟众包收入第二天几点到账(蜂鸟众包2021单价)

  • 坚果手机是哪个国家的(坚果手机是哪个国家的品牌)

    坚果手机是哪个国家的(坚果手机是哪个国家的品牌)

  • 苹果6手机进水就废了吗(苹果6手机进水屏幕失灵怎么办)

    苹果6手机进水就废了吗(苹果6手机进水屏幕失灵怎么办)

  • 电脑qq音乐怎么退出登录(电脑qq音乐怎么设置播放器样式)

    电脑qq音乐怎么退出登录(电脑qq音乐怎么设置播放器样式)

  • 增强短信怎么关闭(增强短信功能怎么开启)

    增强短信怎么关闭(增强短信功能怎么开启)

  • 华为荣耀20怎么解锁(华为荣耀20怎么恢复出厂设置)

    华为荣耀20怎么解锁(华为荣耀20怎么恢复出厂设置)

  • 小米无线反充怎么用(小米无线反充怎么使用)

    小米无线反充怎么用(小米无线反充怎么使用)

  • 电脑上怎么注销qq(电脑上怎么注销营业执照)

    电脑上怎么注销qq(电脑上怎么注销营业执照)

  • 快手怎么置顶自己主页作品(快手怎么置顶自己作品OPPO手机)

    快手怎么置顶自己主页作品(快手怎么置顶自己作品OPPO手机)

  • 荣耀20支持多少w快充(荣耀20支持多少瓦充电器)

    荣耀20支持多少w快充(荣耀20支持多少瓦充电器)

  • 咸鱼买到假货怎么退款(咸鱼买到假货怎么假一赔三)

    咸鱼买到假货怎么退款(咸鱼买到假货怎么假一赔三)

  • 钉钉无法获取定位怎么回事(钉钉无法获取定位怎么办)

    钉钉无法获取定位怎么回事(钉钉无法获取定位怎么办)

  • 怎么查ipad是不是国行(怎么查ipad是不是正版的)

    怎么查ipad是不是国行(怎么查ipad是不是正版的)

  • autoreconf命令  更新已经生成的配置文件(autoreconf -ivf)

    autoreconf命令 更新已经生成的配置文件(autoreconf -ivf)

  • 企业避税和逃税的关系
  • 季度申报利润表本月数怎么填
  • 永续盘存制的含义
  • 增值税专票逾期抵扣怎么操作
  • 主营业务收入借方负数表示
  • 新增员工个人所得税申报表?
  • 产品试用装入什么科目里
  • 受托委托加工物资成本包括什么
  • 小规模企业如何变更营业范围
  • 购进货物未取得增值税专用发票
  • 从农民手中购买农产品税率
  • 增值税专用发票开票必填项
  • 房产税税率及计算方法最新
  • 营改增文件2019
  • 开户许可证怎么下载电子版
  • 税控盘服务费每年都可以抵吗
  • 工会经费什么时候返还给企业
  • 投资收益亏损后会怎么样
  • 手机word文档怎么加照片
  • linux系统添加静态路由命令
  • php字符串赋值
  • 电脑故障检测与维护方法
  • 搬迁补偿费如何做账
  • 受赠与获赠的区别
  • 企业资本结构决策需要重点考虑的有
  • ros入门21讲
  • 货物及劳务包括哪些内容
  • timit数据集
  • centos+php+coreseek+sphinx+mysql之一coreseek安装篇
  • trap指令在用户态执行
  • vue路由怎么实现
  • 职工食堂费用计入什么科目
  • 餐饮店库存盘点表
  • 金蝶软件怎么查银行科目明细
  • 过路费抵扣进项税怎么计算
  • 重分类调整分录汇总表什么情况填写
  • opengl 图形
  • u8存货核算对方科目怎么设置
  • 劳务公司社保手续办理
  • 扣供应商货款怎么入账
  • sqlalchemy 封装
  • 如何结转完工入库的产品成本
  • 企业收到收据后怎么处理
  • 私车公用协议可以过户吗
  • 现金流量表的内部结构怎么算
  • 公司使用pos机
  • 购买会计软件如何入账
  • 去年的车辆保险今年才开怎么做分录
  • 管理费用和营业费用的比例
  • 定金与订金不同
  • 暂估应付账款余额调整
  • 账簿按账页格式排序
  • 规范的记账凭证是什么
  • 按关键字13,24,37,90,53,34
  • Windows Server 2008疑难杂症
  • 电脑出现黑屏英文要怎么处理
  • win7 系统启动
  • asmproserver.exe是什么进程 asmproserver进程信息查询
  • 在苹果电脑mac上怎么下载
  • xp双系统怎么切换系统
  • centos7如何添加光盘
  • launch pxe
  • linux扩大文件系统
  • win10系统怎么调整输入法
  • win10屏幕图片
  • linux root 密码忘了怎么办
  • 置顶通知要开启吗
  • js数组操作函数
  • stick function
  • jquery 回车
  • unity飞机大战游戏毕业论文
  • python微信查单删
  • node-js
  • js中的array数组有什么缺点
  • jquery获取当前点击的元素
  • 陷阱类过关游戏
  • 浙里办扫码在哪里
  • 原木进项税率
  • 小规模纳税人销售货物税率是多少
  • 武汉洪山实验中学是初中还是高中
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设