urllib用法
from urllib import request
from urllib import parse
import json
url = 'http://college.gaokao.com/schlist/p1'
# 构建请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}
"""
url :目标url
data=None :默认为None表示是get请求,如果不为None说明是post请求
timeout:设置请求的过期时间
cafile=None, capath=None, cadefault=False:证书相关参数
context=None :忽略证书认证
"""
# 添加请求头
req = request.Request(url=url, headers=headers)
response = request.urlopen(req, timeout=10)
#响应状态码
code = response.code
#响应头
headers = response.headers
#页面源码
content = response.read()
html = b_content.decode('utf-8')
# 本地保存
with open('hengyan.html', 'w') as file:
file.write(html)
requests用法
- 什么是requests?
requests是基于urllib的再一次封装,具有urllib的一切特性,并且API调用更加方便,一个基于网络请求的模块,模拟浏览器发起请求
- 为什么使用requests模块?
1.自动处理url编码
2.自动处理post请求参数
3.简化cookie和代理的操作
- cookie的操作:
a.创建一个cookiejar对象
b.创建一个handler对象
c.创建一个opener对象
- 代理的操作:
a.创建handler对象,代理ip和端口封装到该对象
b.创建opener对象
- 安装
安装:pip3 install requests
requests的get请求
url = 'http://college.gaokao.com/schlist/'
#params:跟的是get请求url地址后?后面拼接的参数
params = {
'p': p1
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36',
}
#verify 忽略证书认证,则设置为False
response = requests.get(url=url,params=None,headers=headers,verify=False)
# 获取html页面源码
html = response.text
# 获取页面的二进制数据
content = response.content
# 获取响应的状态码
code = response.status_code
# 获取响应头
response_headers = response.headers
自定义请求头信息:
from fake_useragent import UserAgent
定制请求头
headers ={
"User-Agent":UserAgent().random
}
封装get请求参数:
params = {
"变量名":"参数"
}