Python爬虫入门【3】:美空网数据爬取

Python爬虫入门【3】:美空网数据爬取本文介绍了使用 Python 爬虫抓取美空网用户数据的过程 包括通过分析网站结构找到数据入口 利用正则表达式提取分页链接 存储数据到 MongoDB 数据库 以及处理反爬策略

大家好,欢迎来到IT知识分享网。

美空网数据—-简介

从今天开始,我们尝试用2篇博客的内容量,搞定一个网站叫做“美空网”网址为:http://www.moko.cc/, 这个网站我分析了一下,我们要爬取的图片在 下面这个网址

http://www.moko.cc/post/1302075.html

然后在去分析一下,我需要找到一个图片列表页面是最好的,作为一个勤劳的爬虫coder,我找到了这个页面

http://www.moko.cc/post/da39db43246047c79dcaef44c201492d/list.html

列表页面被我找到了,貌似没有分页,这就简单多了,但是刚想要爬,就翻车了,我发现一个严重的问题。

http://www.moko.cc/post/da39db43246047c79dcaef44c201492d/list.html

我要做的是一个自动化的爬虫,但是我发现,出问题了,上面那个黄色背景的位置是啥?

ID,昵称,个性首页,这个必须要搞定。

我接下来随机的找了一些图片列表页,试图找到规律到底是啥?

  1. http://www.moko.cc/post/978c74a0375f4edca114e87b0a45a0b5/list.html
  2. http://www.moko.cc/post/jundayi/list.html
  3. http://www.moko.cc/post/slavik/list.html

没什么问题,发现规律了

http://www.moko.cc/post/==个性昵称(中文昵称是一个加密的串)==/list.html

这就有点意思了,我要是能找到尽量多的昵称,不就能拼接出来我想要得所有地址了吗

开干!!!

手段,全站乱点,找入口,找切入点,找是否有API

… … 结果没找着

下面的一些备选方案

趴这个页面,发现只有 20页 http://www.moko.cc/channels/post/23/1.html

每页48个模特,20页。那么也才960人啊,完全覆盖不到尽可能多的用户。

接着又找到

http://www.moko.cc/catalog/index.html 这个页面

确认了一下眼神,以为发现问题了,结果

Python爬虫入门【3】:美空网数据爬取

哎呀,还么有权限,谁有权限,可以跟我交流一下,一时激动,差点去下载他们的APP,然后进行抓包去。

上面两条路,都不好弄,接下来继续找路子。

无意中,我看到了一丝曙光

Python爬虫入门【3】:美空网数据爬取

关注名单,点进去

Python爬虫入门【3】:美空网数据爬取

哈哈哈,OK了,这不就是,我要找到的东西吗?

不多说了,爬虫走起,测试一下他是否有反扒机制。

我找到了一个关注的人比较多的页面,1500多个人

http://www.moko.cc/subscribe/chenhaoalex/1.html

然后又是一波分析操作

美空网数据—-爬虫数据存储

确定了爬虫的目标,接下来,我做了两件事情,看一下,是否对你也有帮助

  1. 确定数据存储在哪里?最后我选择了MongoDB
  2. 用正则表达式去分析网页数据

对此,我们需要安装一下MongoDB,安装的办法肯定是官网教程啦!

https://docs.mongodb.com/master/tutorial/install-mongodb-on-red-hat/

如果官方文档没有帮助你安装成功。

那么我推荐下面这篇博客

https://www.cnblogs.com/hackyo/p/7967170.html

安装MongoDB出现如下结果

Python爬虫入门【3】:美空网数据爬取

接下来,你要学习的是 关于mongodb用户权限的管理

http://www.cnblogs.com/shiyiwen/p/5552750.html

mongodb索引的创建

Python爬虫入门【3】:美空网数据爬取

别问为啥我不重新写一遍,懒呗~~~ 况且这些资料太多了,互联网大把大把的。

一些我经常用的mongdb的命令

 链接 mongo --port <端口号> 选择数据库 use admin 展示当前数据库 db 当前数据库授权 db.auth("用户名","密码") 查看数据库 show dbs 查看数据库中的列名 show collections 创建列 db.createCollection("列名") 创建索引 db.col.ensureIndex({"列名字":1},{"unique":true}) 展示所有索引 db.col.getIndexes() 删除索引 db.col.dropIndex("索引名字") 查找数据 db.列名.find() 查询数据总条数 db.列名.find().count() Python资源分享qun  ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎 

上面基本是我最常用的了,我们下面实际操作一把。

美空网数据—-用Python链接MongoDB

使用 pip3 安装pymong

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/104327.html

(0)
上一篇 2026-02-18 16:29
下一篇 2023-12-14 19:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信