爬取某几页页面内容并保存为文件
导入相关库
import requests
定义load_page函数用于通过发送GET请求来获取指定URL的网页内容,并返回网页的文本内容
def load_page(url):
# 设置请求头,模拟浏览器访问
headers = {"User-Agent": "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;)"}
# 发送GET请求,获取网页内容
response = requests.get(url, headers=headers)
# 返回网页的文本内容
return response.text
定义save_file
函数,用于将传入的HTML内容保存到指定的文件中。函数接受两个参数:html
表示要保存的HTML内容,filename
表示要保存的文件名。在函数内部,首先打印出保存文件的信息,然后以写入模式打开文件(如果文件不存在则创建),并将HTML内容写入文件中。
def save_file(html, filename):
# 打印保存文件的信息
print("saving:" + filename)
# 以写入模式打开文件,如果文件不存在则创建,编码为utf-8
with open(filename, "w", encoding="utf-8") as file:
# 将html内容写入文件
file.write(html)
爬取指定范围内的页面,并将每个页面的内容保存为一个HTML文件。具体来说,它通过循环遍历从begin_page
到end_page
的页面,构造对应的URL和文件名,然后调用load_page(url)
函数加载页面内容,最后调用save_file(html, file_name)
函数将页面内容保存到文件中。
def heima_forum(begin_page, end_page):
# 遍历指定范围内的页面
for page in range(begin_page, end_page + 1):
# 构造URL
url = f'http://bbs.itheima.com/forum-425-{page}.html'
# 构造文件名
file_name = "page" + str(page) + ".html"
# 加载页面内容
html = load_page(url)
# 保存页面内容到文件
save_file(html, file_name)
if __name__=="__main__":
begin_page=int(input("请输入起始页码:"))
end_page=int(input("请输入结束页码:"))
heima_forum(begin_page,end_page)