动态网页抓取( 私信小编007或者01即可获取数十套PDF或者零基础入门资料一套)

优采云 发布时间: 2022-01-30 03:16

  动态网页抓取(

私信小编007或者01即可获取数十套PDF或者零基础入门资料一套)

  

  写在前面的话

  夜凉如水,夜空下,秋叶翩翩起舞。

  天桥下,五彩缤纷的灯火一望无际,人来人往的十字路口,繁华热闹的城市。

  我需要看看这位年轻女士的照片,感受这个世界的温柔。

  私信编辑007或01获取几十套PDF或一套零基础的入门资料!

  一.思路分析

  根据爬行动物的基本规则:

  1.寻找目标

  2.获取目标

  3.处理目标内容以获取有用信息

  行动

  1.我们的目标是:

  这个网站是论坛式的网站,分为几类。无论如何,尝试各种*敏*感*词*。

  我们的目标是找到这些(采集的)(隐藏的)移动(行进的)图片(self)的(self)、地面(electrical)地址(brain)。

  2.看看各个模块的url,有什么规则?

  

  是的,没错,如果您以访问者的身份访问,每个模块的 URL 将如下所示:

  开始使用

  1.获取入口页面内容

  即根据传入的URL,获取整个页面的源码

  

  这里我们使用 webdriver 和 PhantomJS 之类的模块,为什么?因为网页是动态加载的,所以可以爬取的数据是满的。

  2.获取页码

  

  这里的页码处理使用了一个模板pq,它使用PyQuery来查找我们需要的元素。处理起来感觉更好,非常方便。

  同时,这里的处理有点意思。如果你观察这个页面,你会发现每个模板的页码上下都有一个,然后

  我这里截图了,因为我们只需要页码

  3-6 一起说一下步骤3到6

  其实就是根据页数进行遍历,得到每一页的内容

  然后获取每一页的所有图片地址

  

  在获取每个页面的内容时,需要重新组装页面地址。

  有了新地址就可以得到当前页面的内容,进行数据处理得到每张图片的地址列表

  得到图片列表后,再次解析得到每张图片的URL

  将图像保存在本地,并将数据写入数据库

  

  其实大致的内容到这里就讲完了。我们可以将本论坛各个模块的*敏*感*词*保存在本地,同时将数据存入数据库。

  数据库过滤

  把数据放入数据库后,想到直接调用数据库就可以保存图片了

  (为什么会有这个想法,因为我发现如果直接在主程序中存储图片,运行太慢,不如把所有数据都放到数据库中,然后专门调用数据库存储图片)

  但是这里有个问题,数据里面有很多内容,然后我们发现很多内容都是重复的,所以我们需要对数据库进行去重

  关于去重的内容,其实我之前已经写过文章(我写那个文章的时候,这个爬虫已经完成了~)

  主要思想是对某个元素的数量进行操作。pymongo中有一个方法可以统计指定元素的个数。如果只有一个当前元素,那没关系。如果它不是元素,则将其删除。

  核心代码如下:

  

  读取数据库中的内容并存储图片

  数据去重后,再次存储图片就方便多了。

  图片删除后,无需再次运行。核心代码如下:

  

  完整代码

  01_get_gif_url.py

  

  02_delete_repeat_url_in_mongodb.py

  

  谢谢阅读!!!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线