爬虫_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 URL

form = {"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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值