Python 爬虫 URL 编码和 GETPOST 请求 | 学习笔记

开发者学堂课程【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 方法

http://httpbin.org/测试网站

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'})

访问网站作为测点

上一篇:perl学习1


下一篇:mysql 2006错误 导入时