网页爬虫抓取百度图片(百度贴:搜索关键字获取评论区的图片和视频)

优采云 发布时间: 2022-01-05 00:14

  网页爬虫抓取百度图片(百度贴:搜索关键字获取评论区的图片和视频)

  【一、项目背景】

  您的浏览器不支持视频播放

  *敏*感*词*是全球最大的中文交流平台。你像我么?有时候在评论区看到图片就想下载?或者看到视频并想下载它?

  

  今天小编就带大家在评论区搜索关键词获取图片和视频。

  

  

  

  【二、项目目标】

  将贴吧获取的图片或视频保存到文件中。

  [三、 涉及的图书馆和 网站]

  1、 网址如下:

  【四、项目分析】

  1、 防攀爬措施的处理

  在初步测试中发现网站反爬虫处理措施较多,发现如下测试:

  直接使用requests库,不设置任何header,网站直接不返回数据。同一个ip连续访问40多次,直接封ip。一开始,我的ip是这样被封的。为了解决这两个问题,经过最后的研究,可以采用以下方法来有效解决。

  获取正常的请求头。

  2、如何搜索关键字?通过URL,我们可以发现,你只需要在kw=()和括号中输入你要搜索的内容即可。这样,我们就可以用一个 {} 来代替它,后面我们会循环遍历它。

  【五、项目实施】

  1、创建一个名为BaiduImageSpider的类,定义一个main方法main和一个初始化方法init。导入所需的库。

  import requestsfrom lxml import etreefrom urllib import parseclassbaiduImageSpider(object): def __init__(self, tieba_name):pass def main(self):passif __name__ =='__main__': inout_word = input("请输入您要查询的信息: " ) spider.main()passif __name__ =='__main__': spider= ImageSpider() spider.main()2、 准备url地址和请求头来请求数据。

  import requestsfrom lxml import etreefrom urllib import parseclassbaiduImageSpider(object): def __init__(self, tieba_name):self.tieba_name = tieba_name #input name self.url = "插件安装

  这里使用了一个插件。它可以快速检查我们抓取的信息是否正确。具体安装方法如下。百度下载chrome_Xpath_v2.0.2.crx,chrome浏览器输入:chrome://extensions/

  

  直接将chrome_Xpath_v2.0.2.crx拖到扩展页面;如果安装失败,会弹窗提示“Cannot add apps, extensions and users from this 网站 Script”,解决这个问题的方法是:打开开发者模式,解压crx文件(直接或者带后缀)修改为rar)并解压到文件夹中,点击开发者模式加载解压后的扩展,选择解压后的文件夹,点击确定,安装成功;3.2、chrome_Xpath 插件使用

  上面的chrome_Xpath插件我们已经安装好了,接下来就要用到了。

  打开浏览器,按快捷键F12。选择元素,如下图所示。

  

  右击,选择“复制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 = "保存数据的方法,如下图。

  '''保存到本地函数'''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).contentfilename = "百度/"+img_link[-10:]with open(filename,'wb') as f:f.write(html)print("%s下载成功"% filename) 注:@data-video在URL 视频如下图所示。

  

  [六、效果展示]

  1、 点击运行,如下图(请输入您要查询的信息):

  

  2、以吴京为例输入后回车:

  

  3、将下载的图片保存在名为“百度”的文件夹中,该文件夹需要提前在本地创建。记得提前在当前代码的同级目录下新建一个名为“百度”的文件夹,否则系统找不到文件夹,会报错找不到文件夹“百度”。

  

  4、下图中的MP4为评论区视频。

  

  [七、总结]

  1、 不建议抓太多数据,可能造成服务器负载,简单试一下。

  2、本文基于Python网络爬虫,利用爬虫库实现*敏*感*词*评论区爬取。对Python爬取*敏*感*词*的一些难点进行详细讲解并提供有效的解决方案。

  3、欢迎积极尝试。有时你看到别人实施起来很容易,但自己动手时,总会出现各种问题。不看高手,努力理解更好。深刻的。学习requests库的使用和爬虫程序的编写。

  4、 通过这个项目,你可以更快的得到你想要的信息。

  5、如需本文源码,请后台回复“*敏*感*词*”获取。

  如果想深入了解Python网络爬虫和数据挖掘,可以到专业网站:/

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线