开发者学堂课程【Python 爬虫实战:Python 爬虫 URL 编码和 GETPOST 请求 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/555/detail/7642
Python 爬虫 URL 编码和 GETPOST 请求
内容简介
1、 Urllib.parse 模块
2、 提交方法 Method
一、Urllib.parse 模块
该模块可以完成对 url 的编解码
先看一行代码,进行编码
fron urllib import parse
u-parse.urlencode ("http: //www.magedu.com/python')
运行结果如下
Traceback (most recent call last):File "C: \Python\Python35\1ib\urllib\parse.py", line 780, in urlencode
raise TypeError
TypeError
During handling of the above exception,another exception occurred:
Traceback (most recent call last) :
File "C: /Users/Administrator/PycharmProjects/classbase/test3.py",line 4,in u-parse.urlencode ('http: //www.magedu.com/python')
可以设置多种信息
修改字符串
from urllib import parse
}-p
'id': 1,'name': 'tom}url-http: //www.magedu.com/python?id=|sname=tou-parse.urlencode (d)print (u)
转化成 URL 形式,URL 编码即使来编码这些代码的
即得到此代码
Urlencode 函数第一参数要求是一个字典或者是二次元组序列
from urllib import parse
u=parse.urlencode ({
'url': 'http: //www.magedu.com/python','p_url':"http://www.magedu.com/python?id-18name-张三',})print (u)
运行结果如下
P_url=http%3A%2F%2Fwww.magedu.com%2Fpython%3Fid%301%26name%30%E5%BC%A8%E4%B8%89&url=http%3A%2F%2Fwww.nagedu.comx2Fpython
从运行结果来看,冒号、斜杠、&、等号、问号等字符 全部被编码了,%实际是单字节十六进制表示的值。一般来说,url 中的地址部分,一般不需要使用中文路劲,但是参数部分,不管是 GET 还是 POST 方法,提交的数据中可以有斜杠、,这样这些字符表示问号等符号,而不是元字符。为了安全,一般会将一部分数据做URL 处理,即不会有太大的歧义。后来也可作代码,也可传送中文,一般按照字符集的 encoding 要求转变为十六进制字符串前加百分号即可。
二、提交方法 Method
最常用的 HTTPS 交互数据的方法是 GET、POST
GET:数据是通过 URL 传递的,也就是说数据是在 HTTP 报文中的 Leader 部分
POST:数据是放在 HTTP 报文中的 body 部分所提交
数据都是键值对形式,多个参数使用&符号链接
GET 方法
连接、必应、搜索引擎官网,获取第一个搜索的
URL .http://cn.bing.com/search?q= 马哥教育
需求
请写程序完成对关键词 bing 的搜索,将返回结果保存在一个网页上
二进制与编码无关
POST 方法
from urllib.request import Request,urlopenfrom urllib.parse import urlencodeimport simplejson
request=Request ('http: //httpbin.org/post')request.add_header(
'User-agent',"Mozilla/5. 8 (Windows NT 6. 1) Applewebkit/537.36 (KHTML,like Gecko) Chrome/55.0.2883.75
Safar1/537. 36")
data - urlencode({'name':'张三,@-/&*','age':'6'})
访问网站作为测点