菲洛嘉青春动能素135HA FILLMED® NCTF 135HA LED指示灯的常见故障分析 智微智能 Elkhartlake K075终端,零售产业新选择 天空蓝拓客管理系统详细介绍版 muso公链项目 天使计划 是什么?[秘] 独家揭秘最前沿的家装“黑科技”——掌赋 天博体育欧洲杯特辑,东道主法兰西的失意2016 亚马逊的送货侦察员 学习听起来像挡泥板 Google Comics Factory使ML变得容易 笑着说-男性或女性 Amazon Rekognition中更好的人脸检测 关于Spaun的真相-大脑模拟 两个聊天机器人彼此聊天-有趣又怪异 GANPaint:将AI用于艺术 WCF和WF给予社区 从耳朵到脸 所有神经网络的深层缺陷 蠕虫在尾巴上平衡杆子 Kickstarter上的OpenCV AI套件 TensorFlow-Google的开源AI和计算引擎 众包取代新闻工作者 Google的DeepMind学会玩街机游戏 哑机器人V智能机器人 .NET与.NET 5融为一体 Google的深度学习-语音识别 LInQer将.NET LINQ移植到Javascript 机器人TED演讲-新的图灵测试? GAN的发明者加入苹果 您的智能手机会监视您键入的内容 人工智能帮助改善国际象棋 Zalando Flair NLP库已更新 TensorFlow 1.5包含移动版本 AlphaGo输了一场比赛-比分3-1 虚拟机器学习峰会 Microsoft开源AI调试工具 SharePoint走向移动 F#4.0发出文化变革的信号 克里斯蒂拍卖AI艺术品 人工智能如何区分 Facebook在蒙特利尔的新AI实验室 Mozilla想要您的声音 微软使用极深的神经网络赢得ImageNet 建立AI合作伙伴关系 .NET Core 3-Microsoft几乎回到了起点 神经网络-更好的销售商? Google使用AI查找您的住所 虹膜-适用于Android的Siri证明苹果没有优势 TensorFlow 2提供更快的模型训练 深度学习研究人员将为Google工作
您的位置:首页 >数据库 >

15-python爬取百度贴吧-excel存储

让我们爬取百度贴吧旅游信息,看看哪些地方是大家旅游关注的热点。

不要问我这个十一去哪儿旅游了,我还在家没日没夜的码代码。

这次我们用 urllib 爬取页面,再用BeautifulSoup提取有用信息,最后用 xlsxwriter 把获取的信息 写入到excel表

一 、用到技术

python 基础xlsxwriter 用来写入excel文件的urllib python内置爬虫工具BeautifulSoup解析提取数据

二、 目标页面

https://tieba.baidu.com/f?kw=%E6%97%85%E6%B8%B8&ie=utf-8&pn=0 image.png

三、结果

image.png

四、安装 必要的库

win+R 打开运行输出cmd 进入控制台分别安装beautifulsoup4,lxml,xlsxwriter
pip install lxmlpip install beautifulsoup4pip install xlsxwriter 

五、分析页面

1. 页面规律

我们单击分页按钮,拿到页面最后一个参数的规律 第二页:https://tieba.baidu.com/f?kw=旅游&ie=utf-8&pn= 50 第三页:https://tieba.baidu.com/f?kw=旅游&ie=utf-8&pn= 100 第四页:https://tieba.baidu.com/f?kw=旅游&ie=utf-8&pn= 150 image.png image.png

2. 页面信息

旅游信息列表 打开网页https://tieba.baidu.com/f?kw=旅游&ie=utf-8&pn= 50 按键盘F12键或者 鼠标右键"检查元素"(我用的谷歌chrome浏览器)

发现所有旅游列表都有个共同的class类名j_thread_list 列表分析

作者与创建时间 作者的class为frs-author-name,创建时间的class为is_show_create_time 作者与用户名分析

标题 标题的class为j_th_tit 标题分析

六、全部代码

import xlsxwriter# 用来写入excel文件的import urllib.parse# URL编码格式转换的import urllib.request# 发起http请求的from bs4 import BeautifulSoup# css方法解析提取信息url='https://tieba.baidu.com/f?kw='+urllib.parse.quote('旅游')+'&ie=utf-8&pn='# 百度贴吧旅游信息# parse.quote("旅游") # 结果为%E6%97%85%E6%B8%B8herders={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36', 'Referer':'https://tieba.baidu.com/','Connection':'keep-alive'}# 请求头信息data = []# 所有爬虫的数据都存放到 这个data列表里面"""getList 获取分页中的列表信息url 分页地址"""def getList(url):req = urllib.request.Request(url,headers=herders)# 设置请求头response=urllib.request.urlopen(req)# 发起请求得到 响应结果responsehtmlText = response.read().decode("utf-8").replace("<!--","").replace("-->","")# htmlText = 响应结果read读取.decode 转换为utf文本.replace 替换掉html中的注释# 我们需要的结果在注释中,所以要先替换掉注释标签 <!-- -->html = BeautifulSoup(htmlText,"lxml")# 创建beautifulSoup对象thread_list=html.select(".j_thread_list")# 获取到所有的旅游类别# 遍历旅游列表for thread in thread_list:title = thread.select(".j_th_tit")[0].get_text()author = thread.select(".frs-author-name")[0].get_text()time= thread.select(".is_show_create_time")[0].get_text()# 提取标题,作者,事件print(title) # 打印标签data.append([title,author,time])# 追加到总数据中"""获取到所有的分页地址,最大5页url 页面地址p=5 最多5页"""def getPage(url,p=5):for i in range(5):link = url+str(i*50)# 再一次拼接 第1页0第2页50 第3页100 第4页150getList(link)# 执行获取页面函数getList"""写入excel文件data 被写入的数据"""def writeExecl(data):lens = len(data)# 获取页面的长度workbook = xlsxwriter.Workbook('travel.xlsx')# 创建一个excel文件sheet = workbook.add_worksheet()# 添加一张工作表sheet.write_row("A1",["标题","作者","时间"])# 写入一行标题for i in range(2, lens + 2):sheet.write_row("A"+str(i),data[i - 2])# 遍历data 写入行数据到excelworkbook.close()# 关闭excel文件print("xlsx格式表格写入数据成功!")"""定义主函数"""def main():getPage(url,5) #获取分页writeExecl(data) #写入数据到excel# 如果到模块的名字是__main__ 执行main主函数if __name__ == '__main__':main()

七、单词表

main主要的def (define) 定义getPage 获取页面writeExcel写入excelworkbook工作簿sheet 表write_row 写入行add 添加close 关闭len length长度data数据range 范围str (string)字符串append追加author作者select选择Beautiful 美丽Soup糖herders 头信息response响应read读decode编码Request 请求parse 解析quote 引用

在线练习:https://www.520mg.com/it IT 入门感谢关注 IT 入门 感谢关注

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。