python(自学10-2)获取豆瓣页面 下载成json格式
import urllib.parse
import urllib.request
# 定义第一个方法 定义page路径
def create_request(page):
# 前边一样不变的路径
base_url = "https://movie.douban.com/top250?"
# 定义后边不太一样的路径
data = {
'start': (page - 1) * 10, # 定义页数
'limit': 25 # 每页个数
}
# 转换data路径编码
data = urllib.parse.urlencode(data)
# 拼接打印路径 base_url +data 成一个完整路径
url = base_url + data
print(url)
# 请求头
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36 Edg/116.0.0.0"}
# 防止反扒 特定
request = urllib.request.Request(url=url, headers=headers)
# 返回 request
return request
# # 定义第二个方法 定义get_conten 请求数据
def get_conten(request):
# 模拟服务器发送请求
response = urllib.request.urlopen(request)
# 读取html页面数据 获取相应源码
content = response.read().decode('utf_8')
return content
# # 定义第二个方法 定义down_load 下载
def down_load(page, content): # 获取 page页码
# 拼接下载路径 以及下载格式
with open('doban' + str(page) + '.json', 'w', encoding='utf-8') as fp:
fp.write(content)
if __name__ == '__main__':
start_page = int(input('开始页码'))
end_page = int(input('结束页码'))
# 遍历
for page in range(start_page, end_page + 1):
# request = 定义page路径
request = create_request(page)
# content = 定义请求方法
content = get_conten(request)
# 下载
down_load(page, content)
#