爬取拉钩全站的职位信息

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

一 程序目的

爬取拉钩全站的职位信息存入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  因为暂时没有数据分析的必要,没有对数据进行清洗

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

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

要找工作啊

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

时间: 2024-10-27 06:48:06

爬取拉钩全站的职位信息的相关文章

21天打造分布式爬虫-Selenium爬取拉钩职位信息(六)

6.1.爬取第一页的职位信息 第一页职位信息 from selenium import webdriver from lxml import etree import re import time class LagouSpider(object): def __init__(self): self.driver = webdriver.Chrome() #python职位 self.url = 'https://www.lagou.com/jobs/list_python?labelWords

CrawlSpider爬取拉钩

CrawlSpider继承Spider,提供了强大的爬取规则(Rule)供使用 填充custom_settings,浏览器中的请求头 from datetime import datetime import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Rule from ArticleSpider.items import LagouJobItem,

爬虫---爬取拉钩信息网

今天不知道写点什么,想到金9银10了写一篇抓取拉勾网我们软件测试工程师的薪资~~ 爬取拉勾网职业信息 分析网站信息 1.打开拉勾网,输入我们想要查找的职位 2.通过抓包工具或者开发者工具查看请求数据 发现是请求地址:https://www.lagou.com/jobs/positionAjax.json?city=%E4%B8%8A%E6%B5%B7&needAddtionalResult=false 通过post形式请求的,请求参数也可以看到 4.分析页面数据 通过分析,数据已json的格式存

使用nodejs爬取拉勾苏州和上海的.NET职位信息

最近开始找工作,本人苏州,面了几家都没有结果很是伤心.在拉勾上按照城市苏州关键字.NET来搜索一共才80来个职位,再用薪水一过滤,基本上没几个能投了.再加上最近苏州的房价蹭蹭的长,房贷压力也是非常大,所以有点想往上海去发展.闲来无聊写了个小爬虫,爬了下苏州跟上海的.NET职位的信息,然后简单对比了一下. 是的小弟擅长.NET,为啥用nodejs?因为前几天有家公司给了个机会可以转nodejs,所以我是用来练手的,不过后来也泡汤了,但是还是花两晚写完了.刚学,代码丑轻喷哈! 一:如何爬取拉勾的数据

使用selenium动态渲染爬取拉勾网上450个java职位的信息

开始这个小项目的时候要确保你的电脑中有装上selenium以及相应的浏览器驱动,还有别忘了Mongodb数据库 我们首先打开拉勾网的官网查看下基本的页面元素 当我在搜索框中输入java的时候,url如下,当我想用下面的url进行抓取的时候,我发现事情并不简单. 我点击下一页的时候发现,url并没有变化,所以并不能用最基本的抓取方法了,而改为ajax请求进行抓取 当我查看ajax请求的时候,发现事情又不简单的了,这个分页的请求带的参数时Form data,也就是表单形式的参数, 所以,拉勾网上的a

selelinum+PhantomJS 爬取拉钩网职位

使用selenium+PhantomJS爬取拉钩网职位信息,保存在csv文件至本地磁盘 拉钩网的职位页面,点击下一页,职位信息加载,但是浏览器的url的不变,说明数据不是发送get请求得到的. 我们不去寻找它的API.这里使用另一种方式:使用PhantomJS模拟浏览,通过单击页面获取下一页. 这里的PhantomJS是一个没有界面的浏览器. 1 from selenium import webdriver 2 import time 3 import random 4 5 from selen

爬取知乎Python中文社区信息

爬取知乎Python中文社区信息,https://zhuanlan.zhihu.com/zimei 1 import requests 2 from urllib.parse import urlencode 3 from pyquery import PyQuery as pq 4 from pymongo import MongoClient 5 import json 6 import time 7 8 base_url = 'https://www.zhihu.com/api/v4/co

BeautifulSoup爬取电影天堂全站电影资源

#爬取电影天堂全站电影资源链接#功能:#1.获取电影天堂资源下载链接并输出#2.所有链接保存为一个csv文件 import timeimport requestsfrom bs4 import BeautifulSoupimport csv def spider(url): global page, No, fobj try: page += 1 print("第{}页".format(page)) # time.sleep(1) #获取网页链接并读取 html = requests.

爬取豆瓣网图书TOP250的信息

爬取豆瓣网图书TOP250的信息,需要爬取的信息包括:书名.书本的链接.作者.出版社和出版时间.书本的价格.评分和评价,并把爬取到的数据存储到本地文件中. 参考网址:https://book.douban.com/top250 注意:使用正则表达式时,不要在Elements选项卡中直接查看源代码,因为那的源码可能经过Javascript渲染而与原始请求不同,而是需要从Network选项卡中查看源码. import re import json import time import request