#化鲲为鹏,我有话说# 鲲鹏弹性云服务器运行网络爬虫(中)
【摘要】 零系统:ubuntu 18.04爬虫:pyspider服务器:鲲鹏弹性云KC1记录全部过程一 设置登录账号和密码创建 db.json 文件,用于设置登录账号和密码不要在 data 文件夹内创建 db.json,data 是 pyspider 第一次启动时创建的文件,保存着数据信息,所以最好每次运行都在 data 的父目录或者指定 data 目录位置,以保证旧数据存在。执行命令启动pyspi...
零
爬虫:pyspider
服务器:鲲鹏弹性云KC1
记录全部过程
一 设置登录账号和密码
创建 db.json 文件,用于设置登录账号和密码
不要在 data 文件夹内创建 db.json,data 是 pyspider 第一次启动时创建的文件,保存着数据信息,所以最好每次运行都在 data 的父目录或者指定 data 目录位置,以保证旧数据存在。
执行命令启动
pyspider --config db.json all
在本地电脑,打开浏览器,输入服务器的ip地址:5000,即弹出登录对话框,输入之前设置的用户名和密码
二 创建第一个爬虫
简单的操作,见图
创建之后,自动生成基础代码,15 行横线处是待爬取的首页链接,19 行是查找详情页,也就是首页面的所有跳转链接,最后的方框则是返回的结果
三 实战
爬取网页:http://quotes.toscrape.com/
信息:名言内容,作者,标签
查看网页信息,每一句名言都是一个div,class=quote, 这里关键字是 quote
@every(minutes=24 * 60)
def on_start(self):
self.crawl('http://quotes.toscrape.com/', callback=self.index_page)
@config(age=10 * 24 * 60 * 60)
def index_page(self, response):
results = []
for each in response.doc('.quote').items():
pass
F12 查看元素,元素选择器(图片中红标1)选择作者名,在右边代码栏可见该标签,其它标签属性有 itemprop="author"
,以此类推
代码可以这样写
# 名言结果集
results = []
# 循环每一句名言
for each in response.doc('.quote').items():
# 名言
comment = each.find('[itemprop="text"]').text()
# 作者
author = each.find('[itemprop="author"]').text()
# 标签
tags = each.find('.tags .tag').items()
# 标签结果集
tagList = []
for tag in tags:
tagList.append(tag.text())
# 将查询到名言封装到名言结果集
results.append({
"comment": comment,
"author": author,
"tagList": tagList
})
结果
四 将结果存储到 MongoDB
如何在鲲鹏弹性云部署 MongoDB,见下链
https://bbs.huaweicloud.com/forum/thread-28769-1-1.html
1
安装 pymongo
pip3 install pymongo
2
爬虫代码:
# 导入
import pymongo
# 连接 mongodb 数据库
client = pymongo.MongoClient('119.3.248.122')
# 库名为 demo1
db = client['demo1']
# 如果有结果集,调用存储数据库函数
def on_result(self,result):
if result:
self.save_to_mongo(result)
# 存到数据库
def save_to_mongo(self,result):
if self.db['comment'].insert(result):
print('saved to mongo',result)
预告: 本篇仅仅爬取一页数据,如何翻页呢?同时下篇将补充一些漏掉的细节,并贴出源码
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)