• 爬取拉钩全站的职位信息


    爬虫学习到今天也告一段落了,利用一个项目把自己这几个月的所学的知识来做一次总结 项目所需要的知识比较全面,很适合练手,

    一 程序目的

      爬取拉钩全站的职位信息存入mysql和mongodb中

    二 所用到的方法

    一 利用selenium登录拉钩取得cookies

    二 利用redis保存selenium登录拉钩取得cookies信息,维护一个cookie池

    三 爬取西刺等免费IP网站,并用redis维护一个IP池

    四 利用flask把cookies和ip分别映射到网页中,用requsets得到.

    五 利用fack_useraget切换UA

    六 异步存入mysql

    七 同时把数存到mongodb中

    八 利用scrapy_redis实现分步式

     用法

    一 生成IP池

    1、 启动redis

    2、 进入ProxyPool cd ProxyPool/proxypool

    3、配置settings 注释写的很清晰

    4、cd ..

    5、python run.py 因为cookie池在5000端口,所这里改在7777端口

    二 生成cookie池

    1、 启动redis

    2、cd CookiesPool/cookiespool

    3、 配置config.py

    4、cd ..

    5、python importer.py 并按提示输入用户名和密码,这一步的目的是为了在redis中保存用户名和密码

    6、 python run.py

    三 启动mysql 和 mongodb

    四 配置好crawler的settings.py

    # Obey robots.txt rules

    ROBOTSTXT_OBEY = False

    # Configure maximum concurrent requests performed by Scrapy (default: 16)

    CONCURRENT_REQUESTS = 5

    DOWNLOADER_MIDDLEWARES = {

        # 'lagou.middlewares.MyCustomDownloaderMiddleware': 543,

        'lagou.middlewares.RandomUaIpCookiesMiddleware': 543,

    }

    ITEM_PIPELINES = {

        'lagou.pipelines.LagouJobMongoPipeline': 300,

        'lagou.pipelines.LagouJobMysqlPipeline': 302,

        'scrapy_redis.pipelines.RedisPipeline': 301

    }

    COOKIES_POOL_URL = "http://127.0.0.1:5000/lagou/random"

    IP_POOL_URL = 'http://127.0.0.1:7777/get'

    UA_TYPE = 'random'

    MONGO_URI = "127.0.0.1:27017"

    MONGO_DATABASE = "outback"

    SCHEDULER = "scrapy_redis.scheduler.Scheduler"

    DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

    REDIS_HOST = 'localhost'

    REDIS_PORT = 6379

    # Whether to persist or clear redis queue.

    CHEDULER_FLUSH_ON_START: True

    MYSQL_HOST='localhost'

    MYSQL_PORT='3306'

    MYSQL_DB="outback"

    MYSQL_USERNAME="root"

    MYSQL_PASSWORD="root"

    五 启动spider

    其他说明

    - 1 用户名和密码输入格式为 15737373737----1234556

    - 2 cookies默认在127.0.0.1:5000/lagou/randam

    - 3 IP默认在127.0.0.1:7777/get

    -4  因为暂时没有数据分析的必要,没有对数据进行清洗

    github https://github.com/573320328/lagou.git 一定记得Start哦,

    如果有不清楚的的地方可以留言发信息,但一定记得start,

    要找工作啊

  • 相关阅读:
    Windows Install Twisted 安装Twisted
    raspberry pi随图形界面开机启动 被执行两次的问题
    将任意程序(如.bat文件)作为Windows服务运行
    xampp无法打开phpmyadmin解决方案
    python的subprocess无法进行通信(无法通过管道输入数据)的问题解决
    关于接地/共地
    树莓派字体安装
    windows 不能在本地计算机启动apache2 的解决方法(不是修改端口)
    5 November in 614
    模拟退火算法
  • 原文地址:https://www.cnblogs.com/liuqianli/p/8418084.html
Copyright © 2020-2023  润新知