请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Python爬虫连载3-Post解析、Request类

[复制链接]
查看: 14|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
70839
发表于 2020-1-17 03:10 | 显示全部楼层 |阅读模式
一、拜候收集的两种方式
1.get:利用参数给办事器传递信息;参数为dict,然后parse解码
2.post:一样平常向办事器传递参数利用;post是把信息自动加密处置赏罚;假如想要利用post信息,需要利用到data参数
3.Content-Type:application/x-www.form-urlencode
4.Content-Length:数据长度
5.简而言之,一旦变动请求方式,请留意其他请求头信息相顺应
6.urllib.parse.urlencode可以将字符串自动转换为上面的信息。
案例:利用parse模块模仿post请求分析百度翻译:分析步伐:
(1)翻开谷歌欣赏器,F12
(2)尝试输入单词girl,发想每敲击一个字母后城市有一个请求
(3)请求地址是:http://fanyi.baidu.com/sug
(4)翻开network-XHR-sug
  1. from urllib import request,parse#负责处置赏罚json格式的模块import json"""大略流程:(1)利用data机关内容,然后urlopen翻开(2)返回一个json格式的结果(3)结果就应当是girl的释义"""baseurl = "https://fanyi.baidu.com/sug"#寄存迎来模仿form的数据一定是dict格式data = {    #girl是翻译输入的英文内容,应当是由用户输入,此处利用的是硬编码    "kw":"girl"}#需要利用parse模块对data举行编码data = parse.urlencode(data).encode("utf-8")#我们需要机关一个请求头,请求头应当最少包含传入的数据的长度#request要求传入的请求头是一个dict格式headers = {    #由于利用了post,最少应当包含content-length字段    "Content-length":len(data) }#有了headers,data,url便可以尝试发出请求了rsp = request.urlopen(baseurl,data=data)#,headers=headersjson_data = rsp.read().decode()print(json_data) #把json字符串转化为字典json_data = json.loads(json_data)print(json_data) for item in json_data["data"]:    print(item["k"],"--",item["v"])
复制代码
我的关键词 Python爬虫连载3-Post剖析、Request类  热门消息 1707435-20200117001527639-948048329

二、为了更多的设备请求信息,纯真的经过urlopen函数已经不太好用了;需要利用request.Request类
这里只点窜一部分代码,其他的代码都稳定,仍然可以获得类似的结果。
  1. #机关一个Request的实例,就是借用这个类,来把可以大要传入的头信息举行封装扩大req = request.Request(url=baseurl,data=data,headers=headers) #有了headers,data,url便可以尝试发出请求了rsp = request.urlopen(req)#,headers=headers
复制代码


三、源码
Reptile3_PostAnlysis.py
https://github.com/ruigege66/PythonReptile/blob/master/Reptile3_PostAnlysis.py
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.接待关注微信公众号:傅里叶变更,小我公众号,仅用于进修交换,背景复兴”礼包“,获得大数据进修材料
我的关键词 Python爬虫连载3-Post剖析、Request类  热门消息 1707435-20200117001546136-2013031928


免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 淄博新闻网-淄博日报 淄博晚报 淄博财经新报 掌中淄博 淄博专业新闻资讯发布网站 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表