爬取洛克王国宠物及做成搜索可视化界面

爬取洛克王国宠物及做成搜索可视化界面

需求:爬取洛克王国的宠物、链接、图片和详情页的评论,做成一个可视化窗口,实现搜索宠物名字就会出现宠物图片和对应宠物详情页的评论,保存这些评论到 txt 文本中及对评论进行文本分析,做成一个关键词的词云图并保存。

网址:洛克王国宠物大全

1、分析网页及对一级网页发起请求

查看网页可以发现所有的宠物都在id为cwdz_list的ul列表下li里,因此可以用xpath语法解析出所有的宠物名和详情链接和图片,图片的链接是少了前缀的,尝试加上https:前缀,刚好是访问了宠物对应的图片。

image-20230602215843745.png

2、分析宠物详情页及爬取评论

2.1获取评论内容网址

查看二级页面加载的第一个文件,发现并没有评论的信息,简单对二级页面发起请求并不能得到评论,查看加载的所有document文件可以发现评论内容是在第二个文件里

image-20230602221636236.png

image-20230602221833500.png

查看这个文件的标头,对这个请求网址和我们在一级页面爬到的宠物详情页网址做分析

网页网址
https://news.4399.com/luoke/luokechongwu/guangxi/642942.html
评论文档网址
https://comment.5054399.com/luoke/2942/642942_1.html?dm=news.4399.com

可以发现爬到的网址后的数字编号与评论的网址上的数字编号有关联,后四位为第一组数字,第二组数字刚好就是所有数字,多点开几个详情页可以发现这样的规律仍然成立,因此可以用正则匹配出数字编号然后生成对应的网址,对网址发起请求获得评论内容。

2.2爬取评论

对上述文档分析,评论的内容都是在p标签里面的,尝试向评论网址发起请求并使用BeautifulSoup类获取所有的p标签内容,得到了下面的结果

image-20230602223413805.png

直接用if判断去掉为空的元素,并去掉最后一句不属于评论的内容,这样得到的内容就全是评论了

image-20230602223500711.png

3、可视化界面及搜索功能

3.1可视化界面的制作

界面控件主要包括执行的按钮、供用户查找宠物名的输入框、输出评论内容的文本框等,其中的代码都是比较固定的

root = tkinter.Tk()
root.title('洛克王国宠物搜索')
root.geometry('800x600')
root.resizable(False, False)  # 使窗口大小不能被改变
# 提示词
find_text = tkinter.Label(root, text='请输入宠物名:', font=('Arial', 12), width=30, height=2)
find_text.pack()
# 搜索输入框
entry = tkinter.Entry(root, show=None, font=('Arial', 14))
entry.pack(after=find_text)
# 搜索按钮,search是点击按钮就会运行的函数的函数名
find = tkinter.Button(root, text='搜索', font=('Arial', 12), width=10, height=1, command=search)
find.pack()
# 图片存放的位置
img_label = tkinter.Label(root, width=200, height=150)
img_label.pack()
# 输出文本框
output = tkinter.Text(root)
# 滑条
scroll = tkinter.Scrollbar()
scroll.pack(side=tkinter.RIGHT, fill=tkinter.Y)
center(root)
root.mainloop()

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值