Python爬虫request模块的get、post方法应用

news2025/1/19 11:27:01

       

目录

post方法使用

一、确定爬取网站的数据

二、分析数据类型和相应类型

三、使用requetst模块方法进行爬取

四、源代码分享

get的方法使用

一、分析抓取网站操作

二、参数的分析和组成

三、使用get模块方法进行爬取结果

 四、源代码分享

思考和总结

参考网站


        爬虫是当代最流行的数据抓取方法,使用python语言模拟浏览器爬取网站的数据应用到各个模块中,实现数据的价值和利用,达到某种商业的目的。不过因为被爬取的数据的类型和参数不同,所需要进行数据清洗和编码有所不同。下面介绍学习到的request模块方法中的get、post方法的使用。

post方法使用

一、确定爬取网站的数据

 我需要爬取的网站是百度翻译的结果,这个百度翻译结果是我任意输入一个英文翻译出来的结果。我想要爬取翻译以后的英文单词,将英文单词的数据统统抓取下来了。

二、分析数据类型和相应类型

  按照F12看网络参数,刷一下页面,在Fetch/XHR中看到名称中最后一条数据显示正常,常规中网站状态是200码属于正常的响应码。

请求的网站:

 

载荷显示出请求的标识符,大概意思就是用户输入的数据。

 预览状态可以看到dog参数翻译出来的结果

 响应是我们要抓取的数据,不过数据类型是Json,需要转化。

分析大致思路是:

        使用request模块导入,请求参数,请求符,伪造浏览器标识符,进行抓取数据,将数据格式化,抽取有用信息进行编码。

三、使用requetst模块方法进行爬取

 编码结果:

fileNama中有含有love的解释 

四、源代码分享

# -*- conding:utf-8 -*-
#导入模块
import requests
import json
if __name__ == '__main__':
    #需要爬取的网站的url(刷新界面最先开始请求的url参数值)
    post_url = 'https://fanyi.baidu.com/sug'
    #请求的浏览器伪装符
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
    word = input('enter a word:')
    #请求参数
    data={
        'kw':word
    }
    #post方法抓取数据
    response=requests.post(url=post_url,data=data,headers=headers)
    print('post抓取下来的数据相应码:',response)
    #使用json格式进行编码和解码
    dic_obj = response.json()
    print('使用json转换出来的数据:',dic_obj)
    #给查询的阐述加上一个json后缀名
    fileName = word+'.json'
    #写入一个文件
    fp = open('fileName','w',encoding='utf-8')
    #使用json.dump编码和解码json数据
    json.dump(dic_obj,fp=fp,ensure_ascii=False)
    print('over python!!!')

get的方法使用

使用GET方法抓取豆瓣电影的数据,获取有用的数据,将数据本地化存储。

一、分析抓取网站操作

        打开网站的源代码进行分析,观察到数据,网站的请求参数由网站地址加上请求参数组成。我们可以将URL作为编码中的抓取网站,载荷参数设定为请求值

二、参数的分析和组成

​​​​​​​https://movie.douban.com/j/chart/top_list?(前部分是请求URL)type=11&interval_id=100:90&action=&start=0&limit=1(后半部分是请求参数,请求参数正好是载荷值)

 

三、使用get模块方法进行爬取结果

 编码结果:

 douban.json文件中包涵了编译结果的记录

 四、源代码分享:

# -*- conding:utf-8 -*-
import requests
import json
if __name__ == '__main__':
    #定义爬虫的url
    post_url = 'https://movie.douban.com/j/chart/top_list'
    #浏览器请求标识符
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'}
    #请求参数确定
    param ={
        'type':'24',
        'interval_id' : '100:90',
        'action' : '',
        'start' : '40',
        'limit' : '20'
    }
    #用get方法进行抓取
    response = requests.get(url=post_url,headers=headers,params=param)
    # print(response)
    #使用json方法进行解码
    list_data = response.json()
    print("获取到网页的json参数:",list_data)
    fp = open('./douban.json','w',encoding='utf-8')
    #使用json.dump进行写入,ascill编码为否。
    json.dump(list_data,fp=fp,ensure_ascii=False)
    print('over python!!!')

思考和总结:

        什么时候用get方法,什么时候用post方法呢。那就在于我们使用F12刷新网站的时候,出来的标头,请求参数是get方法或者post方法了。针对不同的请求方法,使用不同的取值方式。

参考网站:

4.requests模块巩固深入案例之破解百度翻译_哔哩哔哩_bilibili

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

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

相关文章

MySQL---触发器详解

目录 一、触发器的介绍 二、触发器的语法 (1)insert触发器 (2)update触发器 (3)delete触发器 一、触发器的介绍 触发器是与表有关的数据库对象,指在insert/update/delete 之前或之后&…

4-UI自动化-selenium三大等待操作

4-UI自动化-selenium三大等待方式selenium三大等待方式强制等待timd.sleep隐式等待implicitly_wait显式等待WebDriverWait显式等待和隐式等待的区别上篇介绍了3-UI自动化-八大元素定位,xpath定位方式和相关的常问面试题 本篇来学习三大等待方式 ♡\color{red}{\hear…

如何用蓝牙实现无线定位(一)--系统原理

1. 简介 本项目将利用多个BLE4.0蓝牙模块,配合主控板、OLED显示屏等,构建一个无线定位系统。 本项目的系统构成为:3个信号塔,1个中控台,2个被定位的目标。 无线定位的用途有很多。比如,我们可以把固定的目…

zabbix拓扑图和聚合图形

目录 一、环境准备 1、搭建zabbix基础环境 2、创建被监控主机 二、拓扑图 1、拓扑图作用 2、拓扑图绘制步骤 三、聚合图形 1、聚合图形的作用 2、创建聚合图形 一、环境准备 1、搭建zabbix基础环境 zabbix基础环境部署参照:zabbix基础环境部署_桂安俊kyli…

方格取数 (两条路径,使得取得的数字和为最大)

设有 NN 的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字0。如下图所示: 某人从图中的左上角 A 出发,可以向下行走,也可以向右行走,直到到达右下角的 B 点。 在走过的路上&#xff0…

Vue中的组件生命周期

一个组件从创建到销毁的过程 成为生命周期。 在我们使用Vue3 组合式API 是没有 beforeCreate 和 created 这两个生命周期的 组件生命周期如下: onBeforeMount() 在组件DOM实际渲染安装之前调用。在这一步中,根元素还不存在。onMounted() 在组件的第一次…

【手把手】教你玩转SpringCloud Alibaba之Sentinel整合GateWay

1、网关流控介绍 在微服务系统中,网关提供了微服务系统的统一入口,所以在做限流的时候,肯定是要在网关层面做一个流量的控制,Sentinel 支持对 Spring Cloud Gateway、Zuul 等主流的 API Gateway 进行限流。 Sentinel 1.6.0 引入…

R语言隐马尔可夫模型HMM识别不断变化的市场条件

了解不同的市场状况如何影响您的策略表现可能会对您的收益产生巨大的影响。最近我们被客户要求撰写关于隐马尔可夫模型的研究报告,包括一些图形和统计输出。 某些策略在波动剧烈的市场中表现良好,而其他策略则需要强劲而平稳的趋势,否则将面…

【PdgCntEditor】解决PDF的目录页码和PDF实际页码不一致的问题,书签页码偏移页面偏移功能,PDF页面标签的添加

一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码,两者之间存在一定的偏移值;导致我们看目录后面的页码,并不能直接借此数字索引到对应页面,非常麻烦。 二、改变页码标签 这是第一种方法&…

电脑技巧:Win10粘贴文件到C盘提示没有权限的解决方法

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

VMware升级手册

1. 概述 1.1 实施范围 本次实施涉及上海SMVIC虚拟化平台的7台物理服务器、7台ESXI节点、一台VC(6.7升级到7.0),以及广德、如皋两个集群迁移到7.0VC。 1.2 实施内容 本项目中需要实施内容包括: 2. 前置准备 升级确认: 3. WBS 4. 实施过程 4.1 VC部署 运行安装包,点击…

R语言生存分析数据分析可视化案例

目标 本文的目的是对如何在R中进行生存分析进行简短而全面的评估。关于该主题的文献很广泛,仅涉及有限数量的(常见)问题。最近我们被客户要求撰写关于生存分析的研究报告,包括一些图形和统计输出。 可用的R包数量反映了对该主题的…

SpringBoot 配置文件这样加密,才足够安全!

1. 前景 在使用Springboot时,通常很多信息都是在application.yml中直接明文配置的,比如数据库链接信息,redis链接信息等等。但是这样是不安全的。 所以需要对敏感数据进行加密,这样防止密码泄露 Jasypt这个库为我们解决了这个问…

[附源码]计算机毕业设计springboot-大学生健康档案管理

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

初识Pytest自动化测试框架,我彻底懂了

初识Pytest Pytest是Python实现的一个测试工具,可以用于所有类型和级别的软件测试。 Pytest是一个可以自动查找到你编写的用例并运行后输出结果的测试框架。 Pytest的特点: 是一个命令行工具,编写用例简单,可读性强非常容易上手…

2023年高企申报准备工作,明光市企业可以提前做这些准备

为了帮助企业提前准备和更好地开展2023年高新技术企业认定申报工作,安徽省大力鼓励企业申报高新技术企业,相应出台了相关政策,同时对于高企申报也有很多奖补,下面小编汇总了滁州市2023年申报,企业提前准备工作有哪些。…

黑群晖从入门到入土,自编译适合自己硬件的黑群晖7.1.x引导(黑群晖DSM7.X引导用arpl编译教程)

写在前面的话 没啥好说的,只需要感谢在GitHub上开源代码的巴西老哥就好,好了废话不多说直接开始。 黑群晖DSM7.X引导用arpl编译教程写在前面的话一、需要的软硬件清单二、制作引导盘1、下载arpl镜像2.1.1、制作PE启动盘,这是使用msata硬盘或…

3. Vue.js 3.0 响应式系统原理

1.响应式系统原理-介绍 接下来通过模拟Vue3的响应式系统来深入了解它内部的工作原理。先来回顾一下Vue3重写了响应式系统,和Vue2相比,Vue3的响应式系统底层采用proxy对象实现,在初始化的时候不需要遍历所有的属性,把属性通过defi…

C语言——结构体(入门)

文章目录1.结构体的声明1.1.结构体是什么?1.2.结构体的声明1.3.结构体的定义和初始化2.结构体成员的访问3.结构体传参1.结构体的声明 1.1.结构体是什么? 在生活中往往很难用一个准确的数据类型来描述一个物体,例如一本书,描述它…

编码技巧——Mybatis分页插件PageHelper使用

本篇介绍Mybatis分页插件PageHelper的使用,本质上是Mybatis拦截器起作用,在执行目标SQL之前添加count语句及拼接limit到目标SQL后面,这里不再赘述,Mybatis拦截器相关知识可参考Mybatis——拦截器Interceptor,本篇仅简单…