1.美空网数据-简介
从今天开始,我们尝试用2篇博客的内容量,搞定一个网站叫做“美空网”网址为:http://www.moko.cc/, 这个网站我分析了一下,我们要爬取的图片在 下面这个网址
然后在去分析一下,我需要找到一个图片列表页面是最好的,作为一个勤劳的爬虫coder,我找到了这个页面
http://www.moko.cc/post/da39db43246047c79dcaef44c201492d/list.html
列表页面被我找到了,貌似没有分页,这就简单多了,但是刚想要爬,就翻车了,我发现一个严重的问题。
http://www.moko.cc/post/da39db43246047c79dcaef44c201492d/list.html
我要做的是一个自动化的爬虫,但是我发现,出问题了,上面那个黄色背景的位置是啥?
ID,昵称,个性首页,这个必须要搞定。
我接下来随机的找了一些图片列表页,试图找到规律到底是啥?
- http://www.moko.cc/post/978c74a0375f4edca114e87b0a45a0b5/list.html
- http://www.moko.cc/post/jundayi/list.html
- 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 这个页面
确认了一下眼神,以为发现问题了,结果
哎呀,还么有权限,谁有权限,可以跟我交流一下,一时激动,差点去下载他们的APP,然后进行抓包去。
上面两条路,都不好弄,接下来继续找路子。
无意中,我看到了一丝曙光
关注名单,点进去
哈哈哈,OK了,这不就是,我要找到的东西吗?
不多说了,爬虫走起,测试一下他是否有反扒机制。
我找到了一个关注的人比较多的页面,1500多个人
http://www.moko.cc/subscribe/chenhaoalex/1.html
然后又是一波分析操作
2.美空网数据- 爬虫数据存储
确定了爬虫的目标,接下来,我做了两件事情,看一下,是否对你也有帮助
- 确定数据存储在哪里?最后我选择了MongoDB
- 用正则表达式去分析网页数据
对此,我们需要安装一下MongoDB,安装的办法肯定是官网教程啦!
https://docs.mongodb.com/master/tutorial/install-mongodb-on-red-hat/
如果官方文档没有帮助你安装成功。
那么我推荐下面这篇博客
安装MongoDB出现如下结果
恭喜你安装成功了。
接下来,你要学习的是 关于mongodb用户权限的管理
mongodb索引的创建
https://blog.csdn.net/salmonellavaccine/article/details/53907535
别问为啥我不重新写一遍,懒呗~~~ 况且这些资料太多了,互联网大把大把的。
一些我经常用的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链接MongoDB
使用 pip3 安装pymongo库
使用pymongo模块连接mongoDB数据库
一些准备工作
-
创建dm数据库
链接上mongodb 在终端使用命令 mongo --port 21111
[linuxboy@localhost ~]$ mongo --port 21111
MongoDB shell version v3.6.5
connecting to: mongodb://127.0.0.1:21111/
MongoDB server version: 3.6.5
>
- 配置用户权限:接着上面输入命令 show dbs 查看权限
权限不足
- 创建管理用户
db.createUser({user: "userAdmin",pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
- 授权用户
db.auth("userAdmin","123456")