爬虫_4、requests的post方法以及json字符串处理
再来回顾一下爬虫的五个步骤:
- 1.需求分析
- 2.寻找网址
- 3.下载网站的返回内容(需要用到:requests)
- 4.通过网站的返回内容找到需要爬取的数据(需要用到:正则表达式re,XPATH-lxml)
- 5.存储找到的数据内容(需要用到:MySQL)
步骤1、2、3前面已经总结过了,这篇看看步骤4、5
步骤4:通过网站的返回内容找到需要爬取的数据
我们以百度翻译为例:
浏览器中访问百度翻译,按F12或在Fn+F12,点击Network,刷新页面,点击XHR,输入**“童”,点击sug**
将Headers放大看:
上图可以看到,页面的request URL,以及请求方式为POST,而不是前面的GET,两者的区别可看前文,以及Header中增加了一项Form Data
所以我们在pycharm中练习获取百度翻译后的结果:
import requests
import json url = "https://fanyi.baidu.com/sug" # 页面的request URLform = {"kw":"童"} # 请求方式为POST时,需要提交的form data# 这里需要使用POST的方法
response = requests.post(url,verify = False,data = form)# 定位数据(爬虫第四步)
print(response.text) # 是字符串类型# json包中的函数loads可以将输入的字符串(str)转换为字典类型(dict)
json_dict = json.loads(response.text) # 转换数据类型
print(json_dict) # 这时就变成了dict类型translated = json_dict["data"][0]["v"] # 就是“童”字,翻译后的结果# 爬虫的第五步,打印或者保存数据
print("翻译后的内容是: ",translated)
# 输出: 第一行是字符串类型,第二行是转换后的字典类型,第三行是结果
{"errno":0,"data":[{"k":"\u7ae5","v":"[t\u00f3ng] \u540d child; young servant; \u5f62 virgin; bald; bar"},{"k":"\u7ae5\u5e74","v":"[t\u00f3ng ni\u00e1n] childhood;"},{"k":"\u7ae5\u8bdd","v":"[t\u00f3ng hu\u00e0] children's stories; fairy tales;"},{"k":"\u7ae5\u8bdd\u6545\u4e8b","v":"fairy tale; Fairy Tales; FAIRY STORIES;"},{"k":"\u7ae5\u88c5","v":"[t\u00f3ng zhu\u0101ng] children's garments;"}]}
{'errno': 0, 'data': [{'k': '童', 'v': '[tóng] 名 child; young servant; 形 virgin; bald; bar'}, {'k': '童年', 'v': '[tóng nián] childhood;'}, {'k': '童话', 'v': "[tóng huà] children's stories; fairy tales;"}, {'k': '童话故事', 'v': 'fairy tale; Fairy Tales; FAIRY STORIES;'}, {'k': '童装', 'v': "[tóng zhuāng] children's garments;"}]}
翻译后的内容是: [tóng] 名 child; young servant; 形 virgin; bald; bar
爬虫_4、requests的post方法以及json字符串处理相关推荐
- jquery parseJSON()方法解析json字符串
在web项目开发中,前端经常需要接收后端传送来的json数据,解析json字符串,再对页面进行渲染.使用jquery解析json字符串通常需要将json字符串转化为javascript的json对象( ...
- 使用fastjson的parseObject方法将json字符串转换成Map 或者List
fastjson 转换成map HashMap<String,String> map = JSON.parseObject(jsonStr,new TypeReference<Has ...
- 初学爬虫 request中的post方法(内含爬取金山翻译案例)
爬虫初学 什么是BeautifulSoup? 答:BeautifulSoup是解析工具 基础爬虫遇到中文乱码问题 使用encoding = utf-8 import requestsHTML=requ ...
- C# 中对象与JSON字符串相互转换的三种方法
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换,在实际项目中应比较广泛,经过一番搜索,找到如下 ...
- java中将json字符串_Java中JSON字符串与java对象的互换实例详解
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...
- 【Groovy】json 字符串反序列化 ( 使用 JsonSlurper 进行 json 字符串反序列化 | 根据 map 集合构造相关类 )
文章目录 一.使用 JsonSlurper 进行 json 字符串反序列化 二.根据 map 集合构造相关类 三.完整代码示例 一.使用 JsonSlurper 进行 json 字符串反序列化 将如下 ...
- Java中JSON字符串与java对象的互换实例详解
这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...
- C# 对象与JSON字符串互相转换的三种方式
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式. 关于内存对象和JSON字符串的相互转换,在实际项目中应比较广泛,经过一番搜索,找到如下 ...
- JavaScript解析Json字符串
JavaScript可以解析服务器接口返回的json字符串(一般用于Ajax),而不需要json的额外支持. 在JavaScript中可以通过eval()方法将一个json字符串解析成一个JavaSc ...
- JavaScript学习(六十一)—json字符串的解析和JS 对象的序列化
JavaScript学习(六十一)-json字符串的解析和JS 对象的序列化 一.json字符串的解析:parse方法 将json字符串转换为js对象,我们把这个过程称为json字符串的解析 格式:J ...
最新文章
- 约瑟夫环 java实现
- 数据结构与算法--将数组排成最小的数
- android计算器弹窗,android实现简易计算器
- sql 在某表中加入一列count所有数据_执行COUNT(1)、COUNT(*) 与 COUNT(列名) 到底有什么区别?...
- 云起作者认证大神_2020网络文学“白金大神”名单出炉!顶级作家是怎样炼成的?...
- error: Program received signal SIGSEGV, Segmentation fault. (Codeblocks, C++)
- java编程中的点_java编程中所遇到的知识点(持续更新)
- 雨滴式的显示图片 (cloud 转贴) (转)
- ICLR 2021 | 自解释神经网络—Shapley Explanation Networks
- 知识图谱 helloword
- max等聚合函数和group by搭配使用的注意事项
- 4、概率中的独立性和互斥性
- golang 设置goproxy代理的小细节,适用于go module下载超时,阿里云镜像go module下载超时
- 数据库oracle11g的存储结构
- 在UTF-8下写字库
- Windows10 无法识别手机MTP问题
- android资apk资源加密,4399游戏盒 安卓APK sign 加密分析 之 so文件分析
- Python3.6.8调用STK11.6仿真:从TLE文件读取某个ID号的卫星,外推星历并保存结果为*.xlsx文件
- 【MYSQL】大量数据入库方案
- 伪原创视频的处理技巧