爬取拉钩全站的职位信息

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

一 程序目的

  爬取拉钩全站的职位信息存入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,

要找工作啊

原文地址:https://www.cnblogs.com/liuqianli/p/8418084.html