宁波网站建设设计,手机企业网站,制作网站要什么软件,济南的互联网公司有哪些在 Python 这个内置的 Urllib 库中#xff0c;有这么 4 个模块#xff1a;
request#xff0c;request模块是我们用的比较多的#xff0c;就是用它来发起请求#xff0c;所以我们重点说说这个模块。error#xff0c;error模块呢#xff0c;就是当我们在使用 request 模…在 Python 这个内置的 Urllib 库中有这么 4 个模块
requestrequest模块是我们用的比较多的就是用它来发起请求所以我们重点说说这个模块。errorerror模块呢就是当我们在使用 request 模块遇到错了就可以用它来进行异常处理。parseparse模块就是用来解析我们的 URL 地址的比如解析域名地址啦URL指定的目录等。robotparser这个用的就比较少了它就是用来解析网站的 robot.txt
了解了 urllib 之后我们就用 python 代码来模拟请求吧
urllib.request
首先我们导入 urllib 的请求模块
import urllib.requestresponse urllib.request.urlopen(http://www.baidu.com)
print(response.read().decode(utf-8))我们通过 request 模块的 urlopen 方法,直接用 Get 请求方式请求百度了,那么返回的内容就是和浏览器一样的。 request 的 urlopen 方法可以传入的参数主要有 3 个 urllib.request.urlopen(url, dataNone, [timeout, ]*) 第一个 url 就是我们请求的链接比如我们刚刚就请求百度。
第二个参数 data就是专门给我们 post 请求携带参数的比如我们在登录的时候可以把用户名密码封装成 data 传过去在这里的 data 的值我们可以用 byte 的类型传递。
第三个参数 timeout 就是设置请求超时时间如果等好久服务器都没有给我们返回数据我们就不鸟他了这就是 request 的 urlopen 主要用法。
如果我们要欺骗服务器说我们是浏览器或者手机请求的呢这个时候我们需要添加请求头信息也就是我们上次说的 request header。那么这个时候就该让 request 模块中的 Request 方法出场了这个 Request 方法的参数多一些 urllib.request.Request(url, dataNone, headers{}, methodNone) 我们除了定义 url 和 data 之外我们还可以定义请求头信息urlopen 默认是 Get 请求当我们传入参数它就为 Post 请求了而 Request 可以让我们自己定义请求的方式这样我们就可以使用 Request 来封装我们的请求信息。 通过设定headers参数可以冒充某个设备浏览器
headers {#假装自己是浏览器User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36,
}记得请求参数要转unicode码
from urllib import request,parse
dict {return_url:https://zhihu.com/,user_name:xiaoshuaibgmail.com,password:123456789,_post_type:ajax,
}
data bytes(parse.urlencode(dict),utf-8)然后我们就可以封装 request 了
req request.Request(url,datadata,headersheaders,methodPOST)最后发送请求
response request.urlopen(req)
print(response.read().decode(utf-8))