直接上代码,解释在注释,不懂评论留言,必回!
# 项目名称:
# 项目简介:
# 作 者:key
# 开发时间:2020/10/27 18:45
from urllib.request import Request, urlopen
from urllib.parse import urlencode
from fake_useragent import UserAgent
def get_html(url):
# 设置请求头
headers = {
'User-Agent': UserAgent().chrome
}
# 封装请求
request = Request(url, headers=headers)
response = urlopen(request)
#print(response.read().decode())
return response.read()
def save_html(filename, html_bytes):
# 这里的filename一定不要去加''不然只能创建一个文件
with open(filename, "wb") as f:
f.write(html_bytes)
def main():
content = input("请输入要下载的内容:")
num = input('请输入要下载多少页:')
base_url = "https://tieba.baidu.com/f?ie=utf-8&{}"
# 动态绑定参数
for pn in range(int(num)):
args = {
'pn': pn * 50,
'kw': content
}
args = urlencode(args)
# 给您提示正在下载,可能网速很慢,不知道是否在运行,提示
print('您所下载的{}内容,一共{}页,当前正在下载第{}页,请稍等!'.format(content, num, pn+1))
# 爬取网页
# get_html(base_url.format(args))
# 可以上句单独爬取页面在console显示出来,但我们目的是下载到本地,所以保存,如下句代码
html_bytes = get_html(base_url.format(args))
# 动态创建保存文件名
filename = '第' + str(pn+1) + '页.html'
print(filename, "已下载成功")
save_html(filename, html_bytes)
# print(base_url.format(args))
# 运行之后-------------------------------------------------------------------------------
# 请输入要下载的内容:武汉学院
# 请输入要下载多少页:3
# https://tieba.baidu.com/f?ie=utf-8&pn=0&kw=%E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A2
# https://tieba.baidu.com/f?ie=utf-8&pn=50&kw=%E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A22
# https://tieba.baidu.com/f?ie=utf-8&pn=100&kw=%E6%AD%A6%E6%B1%89%E5%AD%A6%E9%99%A2A2
if __name__ == '__main__':
main()
展示效果