生苦短,我用Pythonpython
一、什么是MongoDB数据库
MongoDB是一个高性能,开源,无模式的文档型数据库json
MongoDB将数据存储为一个文档,数据结构由键值(Key=>value)对组成数据结构
二、MongoDB相关安装dom
Windows的安装方法:能够借鉴小歪老师的知乎专栏:MongoDB及可视化工具的安装中给出了详细的MongoDB数据库、可视化工具RoboMongo和MongoDB的PyCharm插件--Mongo Plugin的安装步骤和方法,可按照步骤安装并测试链接,本人也是按照该教程一步一步操做的。实验都是成功的。工具
三、Python用于操做MongoDB的第三方库pymongo安装:post
我这里是已经安装过了,因此是这样的提示,若是未安装,则是大体提示你安装成功的英文。性能
这里说下pip,我刚开始使用pip安装包的时候,一直提示未能识别pip,最后我找到python的安装目录下:C:\Users\XXXX\XXX\XXX\XXX\Python\Python35\Scripts下,shift+鼠标右击,在此处打开命令窗口,再使用pip install pymongo就成功了。测试
须要这样使用pip是由于我没有设置环境变量的缘由。若是每次都是这样使用pip安装包很麻烦,因此若是你想每次随便在哪里打开cmd.exe都能pip安装包,则须要配置下环境变量:网站
配置流程:个人电脑(或计算机)-->右键属性-->高级系统设置-->环境变量-->系统变量-->path-->点击编辑-->将在刚才shift+右键地方的地址复制到里面,在随便在一个地方打开cmd.exe,输入pip均可以安装包了。
四、爬取拉钩网爬虫工程师数据并保存到MongoDB中
一、分析网页:想要爬取一个网站,首先必须去分析改网页的请求结构和返回结果结构。
由上图分析可知:请求url和请求方式post。
由上图可知:请求所须要的Cookie、Referer、和User-Agent。这些都是请求须要的参数。
点击response,能够看到该请求返回值,这样看不方便,咱们能够全选复制,用json转换工具看一下:
由上图分析可知请求的参数:first:是不是第一页,pn:当前页数,kd:搜索关键字
由截图分析可知,返回结果中content-->positionResult-->result中数据是我所须要的。
代码实现:
import requests
from pymongo import MongoClient
import time
from fake_useragent import UserAgent
client=MongoClient()
db=client.lagou
lagou=db.Reptile #建立Reptile集合,用于保存爬取到的数据集合
headers={
'Cookie':'',#此处写入你分析所得的Cookie
'Referer':''#此处写入你分析所得的Referer
}
def get_job_info(page,kd):#加入一个职位参数kd
for i in range(page):
url=''#此处写入你分析后所得的请求url
payload={
'first':'true',#是不是第一页参数
'pn':i,#当前页数。起翻页做用
'kd':kd #关键字
}
ua=UserAgent()#定义生成随机User-Agent的实例对象
headers['User-Agent']=ua.random #使用fake-Agent随机生成User-Agent,添加到headers
response=requests.post(url,data=payload,headers=headers)#获取请求结果
if(response.status_code==200):
job_json=response.json()['content']['positionResult']['result']#取出须要的数据
lagou.insert(job_json)#保存到MongoDB数据
else:
print('请求错误!')
print('正在爬取'+str(i+1)+'页的数据...')
if __name__=='__main__':
get_job_info(7,'爬虫')复制代码
MongoDB保存数据成功后的结构以下图 所示: