本人依据上课内容,将简单的动态异步网页请求的学习浓缩为一篇代码介绍。
主要有静态网页请求get方法的复习,异步网页请求,伪造请求头,模拟浏览器的介绍,并在最后给出了三个使用实例。
本文与2021/12/11首发于csdn,如有错误和不足请指出。
import requests
import chardet
import json
import re
'''复习一下普通的get方式获取网页'''
url = "http://www.tipdm.com/"
ua = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.41"}
rqg = requests.get(url, headers=ua)
rqg.encoding = chardet.detect(rqg.content)["encoding"]
html = rqg.content.decode("utf-8")
'''了解json'''
# JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。
# 网络之间使用HTTP方式传递数据的时候,绝大多数情况下传递的都是字符串。
# 因此,当需要把Python里面的数据发送给网页或者其他编程语言的时候,可以先将Python的数据转化为JSON格式的字符串,
# 然后将字符串传递给其他语言,其他语言再将JSON格式的字符串转换为它自己的数据格式。
person = {
'basic_info': {
'name': '小明',
'age': 24,
'sex': 'male',
'merry': False},
'work_info': {
'salary': 99999,
'position': 'engineer',
'department': None}
}
person_json = json.dumps(person) # python格式转换为json格式(dumps)转存
person_dict = json.loads(person_json) # json格式转换为python格式(loads)下载
print(person_json)
print(person_dict)
'''异步get与post网页请求'''
# 几种请求方式:
# 1、POST /url 创建 产生新的内容
# 2、DELETE /url/xxx 删除 xxx代表指定内容
# 3、PUT /url/xxx 更新
# 4、GET /url/xxx 查看 不做改变
# 获取异步加载网页的数据:
# (1)简单异步加载ajax技术测试网站http://exercise.kingname.info/exercise_ajax_1.html
# 异步请求用ctrl+R在F12/network/XHR刷新出来
# “ajax_1_backend”get请求页和“ajax_1_postbackend”post请求页
url_get = 'http://exercise.kingname.info/ajax_1_backend' # get请求页url
html_get = requests.get(url).content.decode() # 从网页获取的内容需要.content.decode()
# print(html_get)
url_post = 'http://exercise.kingname.info/ajax_1_postbackend' # post请求页url
# 提交的字典内容,json={}可以将字典转换为json
# 这里的.content.decode()作用是什么?将url返回的内容解码,也可以在html_kingname中再解码
html_kingname = requests.post(url_post, json={
'name': '青南', 'age': 24}