Python爬虫教程-07-post介绍(百度翻译)(上)
2024-10-19 11:53:27
Python爬虫教程-07-post介绍(百度翻译)(上)
- 访问网络两种方法
- get:
- 利用参数给服务器传递信息
- 参数为dict,使用parse编码
- post :(今天给大家介绍的post)
- 一般向服务器传递参数使用
- post是把信息自动加密处理
- 使用post传递信息,需要用到data参数
- 使用post意味着http的请求头信息可能需要更改:
- Content-Type:application/x-www.form-urlencode
- Content-Length:数据长度
- 简而言之,一旦更改请求的方法,注意其他请求头部信息相适应
- urllib.parse.urlencode可以将字符串自动转换成上面的格式
案例v7
- post经典案例,就是百度翻译
- 利用parse模块模拟post请求
- 分析步骤
- 1.打开开发者工具F12>【Network】>【XHR】>【Headers】
- 2.尝试简单的单词,查看发出的请求
- 3.找到请求地址URL,请求的方式Method
- 4.找到参数的传递格式Content-Type, 参数样式Form Data
- 编写代码
# 案例v7百度翻译
from urllib import request,parse
# 导入json包,负责处理json格式的模块
import json
'''
大致流程:
1.利用data构造内容,然后urlopen打开
2.返回一个json格式的结果
3.结果就应该是服务器返回的释义
'''
baseurl = 'http://fanyi.baidu.com/sug'
# 存放用来模拟form的数据,一定是dict格式
keyword = input("请输入需要翻译的内容:")
data = {
'kw': keyword
}
# print(data)
# 需要使用parse模块对data进行编码
data = parse.urlencode(data)
data = data.encode('utf-8')
# print("编码后的data:",data)
# print("编码后的data类型:",type(data))
# 当需要类型为bytes时:在数据的后面加上: data = data.encode('utf-8')
# 构造请求头,请求头部至少包含:
# 1.传入数据的长度
# 2.request要求传入的请求是一个dict格式
# 有了headers,data,url就可以尝试发出请求
rsp = request.urlopen(baseurl,data=data)
json_data = rsp.read().decode()
# 把json字符串转换为字典
json_data = json.loads(json_data)
# print(json_data)
for item in json_data['data']:
if item['k'] == keyword:
print(item['k'], ": ", item['v'])
运行结果
更多文章链接:Python 爬虫随笔
- 本笔记不允许任何个人和组织转载
最新文章
- ubuntu14.04安装及web环境的搭建
- Block与代理的使用
- 搭建高性能计算环境(二)、远程登录Linux服务器
- Sales_item例子
- V - 不容易系列之(4)――考新郎(第二季水)
- 删除 Windows Azure 网站上的标准服务器头
- [思考] hdu 4811 Ball
- MOSFET与MOSFET驱动电路原理及应用(转)
- 【2017-05-25】WebForm母版页
- gitbook初体验
- 汇编指令-位置无关码(BL)与绝对位置码(LDR)(2)
- day8——ajax传参到action(Struts2)
- SPFA 最短路
- WPF Expander获得ToggleButton
- 【Android】3.25 示例25--调启百度地图
- Autolayout中Hugging和Compression使用注意
- floyd最短路
- C#获取apk版本信息
- 【题解】洛谷P1072 Hankson的趣味题 (gcd和lcm的应用)
- DropShadowEffect导致下拉框控件抖动
热门文章
- ES6 三层for循环的链式写法
- thinkPHP5配置nginx环境无法打开(require(): open_basedir restriction in effect. File(/mnt/hgfs/root/tp5/thinkphp/start.php) is not within the allowed path(s)
- Linux 下使用yum 命令安装MySQL
- ruby gems列表
- linux mint 19 与windows时间不同步
- 安装Postgresql之后,创建用户 配置rails
- WPF 使用依赖属性自定义控件
- JAVA-2NIO之Channel
- WPF 确认动态加载数据完成
- NFS挂载时出现";access denied by server while mounting";的解决方法