爬虫学习笔记(2)使用MongoDB保存拉钩数据

栏目: Python · 发布时间: 8年前

内容简介:爬虫学习笔记(2)使用MongoDB保存拉钩数据

生苦短,我用Python

1、什么是MongoDB

MongoDB是一个高性能,开源,无模式的文档型数据库

MongoDB将数据存储为一个文档,数据结构由键值(Key=>value)对组成

2、 MongoDB 相关安装

Windows的安装方法:可以借鉴小歪老师的知乎专栏: MongoDB及可视化 工具 的安装 中给出了详细的MongoDB数据库、可视化工具RoboMongo和MongoDB的PyCharm插件--Mongo Plugin的安装步骤和方法,可按照步骤安装并测试连接,本人也是按照该教程一步一步操作的。实验都是成功的。

3、 Python 用于操作MongoDB的第三方库pymongo安装:

爬虫学习笔记(2)使用MongoDB保存拉钩数据

我这里是已经安装过了,所以是这样的提示,如果未安装,则是大致提示你安装成功的英文。

这里说下pip,我刚开始使用pip安装包的时候,一直提示未能识别pip,最后我找到python的安装目录下:C:\Users\XXXX\XXX\XXX\XXX\Python\Python35\Scripts下,shift+鼠标右击,在此处打开命令窗口,再使用pip install pymongo就成功了。

爬虫学习笔记(2)使用MongoDB保存拉钩数据

爬虫学习笔记(2)使用MongoDB保存拉钩数据

需要这样使用pip是因为我没有设置环境变量的原因。如果每次都是这样使用pip安装包很麻烦,所以如果你想每次随便在哪里打开cmd.exe都能pip安装包,则需要配置下环境变量:

配置流程:我的电脑(或计算机)-->右键属性-->高级系统设置-->环境变量-->系统变量-->path-->点击编辑-->将在刚才shift+右键地方的地址复制到里面,在随便在一个地方打开cmd.exe,输入pip都可以安装包了。

爬虫学习笔记(2)使用MongoDB保存拉钩数据

爬虫学习笔记(2)使用MongoDB保存拉钩数据

4、爬取拉钩网爬虫工程师数据并保存到MongoDB中

1、分析网页:想要爬取一个网站,首先必须去分析改网页的请求结构和返回结果结构。

爬虫学习笔记(2)使用MongoDB保存拉钩数据

由上图分析可知:请求url和请求方式post。

爬虫学习笔记(2)使用MongoDB保存拉钩数据

由上图可知:请求所需要的Cookie、Referer、和User-Agent。这些都是请求需要的参数。

爬虫学习笔记(2)使用MongoDB保存拉钩数据

点击response,可以看到该请求返回值,这样看不方便,我们可以全选复制,用json转换工具看一下:

爬虫学习笔记(2)使用MongoDB保存拉钩数据

爬虫学习笔记(2)使用MongoDB保存拉钩数据

爬虫学习笔记(2)使用MongoDB保存拉钩数据

由上图分析可知请求的参数:first:是否是第一页,pn:当前页数,kd:搜索关键字

爬虫学习笔记(2)使用MongoDB保存拉钩数据

由截图分析可知,返回结果中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保存数据成功后的结构如下图 所示:

爬虫学习笔记(2)使用MongoDB保存拉钩数据


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

机器学习基础教程

机器学习基础教程

(英)Simon Rogers,、Mark Girolami / 郭茂祖、王春宇 刘扬 刘晓燕、刘扬、刘晓燕 / 机械工业出版社 / 2014-1 / 45.00

本书是一本机器学习入门教程,包含了数学和统计学的核心技术,用于帮助理解一些常用的机器学习算法。书中展示的算法涵盖了机器学习的各个重要领域:分类、聚类和投影。本书对一小部分算法进行了详细描述和推导,而不是简单地将大量算法罗列出来。 本书通过大量的MATLAB/Octave脚本将算法和概念由抽象的等式转化为解决实际问题的工具,利用它们读者可以重新绘制书中的插图,并研究如何改变模型说明和参数取值。......一起来看看 《机器学习基础教程》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具