网页分两种:静态和动态,静态网页是指设计好后内容不变的网页,常用requests模块下的text方法提取
import requests
response = requests.get(url='https://www.baidu.com')
print(response.text) # 使用响应对象的text属性提取响应对象中的网页源代码字符串

动态网页是指动态加载的网页鼠标下滑会加载出更多数据,而这种数据又常放在JSON格式的数据包中。
那什么是JSON格式的数据?
JSON格式只有下面四条内容:
- 并列的数据之间用逗号(", ")分隔。
- 映射用冒号(": ")表示。
- 并列数据的集合(数组)用方括号(“[]”)表示。
- 映射的集合(对象)用大括号(“{}”)表示。
比如,下面这句话:
“北京市的面积为16800平方公里,常住人口1600万人。上海市的面积为6400平方公里,常住人口1800万。”
将它改为json模式:
[
{“城市”:“北京”,“面积”:16800,“人口”:1600},
{“城市”:“上海”,“面积”:6400,“人口”:1800}
]
import requests
url = 'https://movie.douban.com/j/chart/top_list'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
params = {
'type': '25',
'interval_id': '100:90',
'action': '',
'start': '0',
'limit': '1'
}
response = requests.get(url, headers = headers, params = params)
print(response.json())

上面的静态和动态页面我们都是爬取的文字页面,那我们能不能爬取图片呢?这就要用到content方法
import requests
url = 'https://i2.hdslb.com/bfs/archive/3dbee6dd124569216ddd692ce5f16925c257e5f1.jpg@672w_378h_1c_100q.webp'
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
response=requests.get(url,headers = headers)
content = response.content
print(content)
with open('图片.webp', 'wb') as fp:
fp.write(content)
