爬取实习僧APP存进mongodb

说明

采用的工具有

1、fiddler抓包工具

2、安卓手机

由于最近找实习工作基本用的就是实习僧这个软件,于是闲来没事做,就爬了一下手机APP的数据,但是仅仅爬取的是爬虫,和python相关的实习岗位。

由于博客上第一次记录手机app爬虫,于是就详细记录一下过程。

操作步骤

设置浏览器代理 

1、打开fiddler

2、Tools->options

3、Eeport  Root Certificate to Desktop

 将证书导入到桌面之后,然后导入到浏览器。以火狐浏览器为例。

 4、然后设置代理,其默认代理端口为8888

 

 到这里你的浏览器就可以实现抓包了,但是一般浏览器都没有怎么用过fiddler,因为浏览器自带抓包功能。只是浏览器可能抓包不是很全面,但是对于常规的爬虫是可以满足的。

设置手机app代理

1、仍然打开fiddler,在Tools->Options

2、然后在手机设置代理

这里需要注意,手机和电脑需要在同一局域网。手机上的代理ip就是你的电脑的ip地址。然后在手机的无限设置部分,如下

 3、在手机的任意浏览器输入如下地址

你的代理ip(电脑的ip)+8888,例如:192.168.0.108:8888

4、然后下载证书,在手机上直接点击就完成证书安装。就可以非常愉快的抓包了。

开始爬虫实习僧

1、打开实习僧软件。然后清楚所有的数据包,然后搜索爬虫相关的职位。

此时我们已经找到了目标链接,这时候就和电脑端爬虫是一样的了。其他的就不用过多的介绍。

本次采用的MongoDB,一种NoSql,大约2年前就接触了这种数据库,操作起来也是比较简单的。

这次爬虫爬取的是职位为爬虫和python两种职位,地点是全国。

代码如下

# coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import requests
import json
import urllib
import pymongo
class shixisheng():
    def __init__(self):

        self.keywords = ['爬虫','python']
        self.contry = '全国'

        self.db = pymongo.MongoClient("mongodb://localhost:27017/")['shixisheng']['jobs']

        self.headers = {
        'User-Agent': 'Android',
        'X-JSL-API-AUTH': 'md5|1533730928|atI0131w8B221rFH|863e02f2070cb8b4b6e9bada38705871',
        'Host': 'androidapi.shixiseng.com',
        'Connection': 'Keep-Alive',
        'Accept-Encoding': 'gzip',
        }

    def parse(self):
        keys = self.keywords
        c = self.contry
        for k in keys:
            for i in range(1,11):
                url = 'https://androidapi.shixiseng.com/app/interns/search?k={0}&c{1}&s=-0&d=&page={2}&m=&x=&z=&st=intern&ft=&t=zj'.format(urllib.quote(k),urllib.quote(c),str(i))

                data = requests.get(url,headers=self.headers,verify=False).content

                js_data = json.loads(data)

                jobs_list = js_data['msg']

                for job in jobs_list:
                    item = {}
                    item['job_name'] = job['name']
                    item['maxsal'] = job['maxsal']
                    item['minsal'] = job['minsal']
                    item['city'] = job['city']
                    item['com_img'] = job['url']
                    item['refresh_time'] = job['refresh']
                    item['day_per_week'] = job['day']
                    item['com_name'] = job['cname']
                    yield item

if __name__ == "__main__":
    run = shixisheng()
    run.db.insert(run.parse())

代码中verify=False参数很重要,因为他要验证你的ssl证书。

如果不加这句的话,会出现如下错误。

requests.exceptions.SSLError: HTTPSConnectionPool(host='androidapi.shixiseng.com', port=443)

最终结果

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值