Python爬虫实战:爬取百度贴吧数据并保存到本地(详细代码注释)

张开发
2026/4/4 7:03:55 15 分钟阅读
Python爬虫实战:爬取百度贴吧数据并保存到本地(详细代码注释)
Python爬虫实战爬取百度贴吧数据并保存到本地 学习提示本文提供完整爬虫代码适合Python初学者。更多数据分析/职场/AI干货欢迎关注公主号船长Talk需求分析我们需要爬取百度贴吧指定关键词的多页内容并将每页保存为HTML文件。完整代码# Python爬虫爬取百度贴吧数据 # 公主号船长Talk更多数据分析/职场/AI干货 import requests import time def GetHtml(keywords, pages, timeSleep): 爬取百度贴吧数据并保存到本地 Args: keywords: 搜索关键词 pages: 爬取页数 timeSleep: 每次爬取间隔时间秒 # 百度贴吧基础URL url http://tieba.baidu.com/f # 设置User-Agent模拟浏览器访问 kv { User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36 } # 循环爬取指定页数 for i in range(0, pages): # 构造文件名 File_name 贴吧第 str(i1) 页 .html # 计算偏移量每页50条 i i * 50 # 构造请求参数 kv2 {kw: keywords, pn: i} # 控制爬取频率避免被封IP time.sleep(timeSleep) # 发送GET请求 r requests.get(url, paramskv2, headerskv) # 打印实际访问URL print(r.url) # 设置编码为utf-8 r.encoding utf8 # 保存到本地文件 with open(File_name, w, encodingutf8) as baiduFile: baiduFile.write(r.text) if __name__ __main__: while True: # 获取用户输入 keywords input(请输入搜索关键字) pages int(input(请输入需要获得的页数)) timeSleep int(input(请输入每次爬取的间隔时间)) # 执行爬取 GetHtml(keywords, pages, timeSleep) print(爬取成功) # 询问是否继续 choice input(是否继续爬取其他关键词(y/n): ) if choice.lower() ! y: break代码解析1. 导入必要的库import requests # HTTP请求库 import time # 时间控制库2. GetHtml函数参数keywords搜索的关键词pages要爬取的页数timeSleep每次请求间隔时间秒避免频繁请求被封IP3. 关键代码说明User-Agent设置模拟浏览器访问避免被反爬虫机制拦截。分页参数pn百度贴吧每页显示50条帖子pn0表示第一页pn50表示第二页以此类推。编码设置设置r.encoding utf8避免中文乱码。运行示例请输入搜索关键字Python 请输入需要获得的页数3 请输入每次爬取的间隔时间2 http://tieba.baidu.com/f?kwPythonpn0 http://tieba.baidu.com/f?kwPythonpn50 http://tieba.baidu.com/f?kwPythonpn100 爬取成功注意事项控制爬取频率建议间隔时间不少于2秒避免频繁请求被封IP遵守robots协议仅用于学习目的不要用于商业用途合法合规不要爬取敏感内容或侵犯隐私的数据更多Python/数据分析/职场干货欢迎关注公主号船长Talk

更多文章