3、用xpath进行数据分析
3.1、chrome_Xpath插件安装
1) 这里用到一个插件。能够快速检验我们爬取的信息是否正确。具体安装方法如下。
2) 百度下载chrome_Xpath_v2.0.2.crx, chrome浏览器输入:chrome://extensions/
3) 直接将chrome_Xpath_v2.0.2.crx拖动至该扩展程序页面 ;
4) 如果安装失败,弹框提示“无法从该网站添加应用、扩展程序和用户脚本”,遇到这个问题,解决方法 是:打开开发者模式,将crx文件(直接或后缀修改为rar)并解压成文件夹,点击开发者模式的加载已解压的扩展程序,选择解压后的文件夹,点击确定,安装成功;
3.2、chrome_Xpath插件使用
上面我们已经安装好了chrome_Xpath插件,接下来我们即将使用它。 1) 打开浏览器,按下快捷键F12 。 2) 选择元素,如下图所示。
3) 右键,然后选择,“Copy XPath”,如下图所示。
3.3、编写代码,获取链接函数。
上面我们已经获取到链接函数的Xpath路径,接下来定义一个获取链接函数get_tlink,并继承self,实现多页抓取。
'''获取链接函数'''
def get_tlink(self, url): xpath = '//div[@class="threadlist_lz clearfix"]/div/a/@href' t_list = self.get_parse_page(url, xpath) # print(len(t_list)) for t in t_list: t_link = "http://www.tieba.com" + t '''接下来对帖子地址发送请求 将保存到本地''' self.write_image(t_link)
4、保存数据
这里定义一个write_image方法来保存数据,如下所示。
'''保存到本地函数'''
def write_image(self, t_link): xpath = "//div[@class='d_post_content j_d_post_content clearfix']/img[@class='BDE_Image']/@src | //div[@class='video_src_wrapper']/embed/@data-video" img_list = self.get_parse_page(t_link, xpath) for img_link in img_list: html = requests.get(url=img_link, headers=self.headers).content filename = "百度/"+img_link[-10:] with open(filename, 'wb') as f: f.write(html) print("%s下载成功" % filename)
注:@data-video是网址中的视频,如下图所示。
【六、效果展示】
1、点击运行,如下图所示(请输入你要查询的信息):
2、以吴京为例输入,回车:
3、将图片下载保存在一个名为“百度”文件夹下,这个文件夹需要你提前在本地新建好。务必记得提前在当前代码的同级目录下,新建一个名为“百度”的文件夹,否则的话系统将找不到该文件夹,会报找不到“百度”这个文件夹的错误。
4、下图中的MP4就是评论区的视频。
【七、总结】
1、不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。
2、本文基于Python网络爬虫,利用爬虫库,实现百度贴吧评论区爬取。就Python爬取百度贴吧的一些难点, 进行详细的讲解和提供有效的解决方案。3、欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。学习requests 库的使用以及爬虫程序的编写。4、通过本项目可以更快的去获取自己想要的信息。