Urllib
这可是 python 内置的库
在 Python 这个内置的 Urllib 库中
有这么 4 个模块
request
request模块是我们用的比较多的
就是用它来发起请求
所以我们重点说说这个模块
error
error模块呢,就是当我们在使用 request 模块遇到错了
就可以用它来进行异常处理
parse
parse模块就是用来解析我们的 URL 地址的,比如解析域名地址啦,URL指定的目录等
robotparser
这个用的就比较少了,它就是用来解析网站的 robot.txt
'''
import urllib.request
response=urllib.request.urlopen('http://www.baidu.com')
print(response.read().decode('utf-8'))
'''
from urllib import request,parse
import ssl
context=ssl._create_unverified_context()
url='http://biihu.cc//account/ajax/login_process/'
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',
}
dict={
'return_url':'https://bihu.cc',
'user_name':'xiaoshuaib@gmail.com',
'passward':'123456789',
'_post_type':'ajax',
}
data=bytes(parse.urlencode(dict),'utf-8')
req=request.Request(url,data=data,headers=headers,method='POST')
response=request.urlopen(req,context=context)
print(response.read().decode('utf-8'))
我们来模拟登陆
进入网站进行登录
我们来抓一下数据先
通过 Fiddler 可以看到我们的请求参数
然后我们再看看我们的请求头信息
好了
知道这些之后我们就可以来模拟登录了
导入 urllib
from urllib import request,parse
import ssl
在这里我们还要导入 ssl
因为逼乎这个b用的是 https
我们可以使用 ssl 未经验证的上下文
context = ssl._create_unverified_context()
接着定义一下我们的请求 url 和 header
url = 'https://biihu.cc//account/ajax/login_process/'
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',
}
再定义一下我们的请求参数
dict = {
'return_url':'https://biihu.cc/',
'user_name':'xiaoshuaib@gmail.com',
'password':'123456789',
'_post_type':'ajax',
}
我们把请求的参数转化为 byte
data = bytes(parse.urlencode(dict),'utf-8')
然后我们就可以封装 request 了
req = request.Request(url,data=data,headers=headers,method='POST')
最后我们进行请求
response = request.urlopen(req,context=context)
print(response.read().decode('utf-8'))
ok
这样我们就模拟登录了
运行一下看看
{"rsm":{"url":"https://biihu.cc/home/first_login-TRUE"},"errno":1,"err":null}