python之crawlscrapy爬取某集团招聘信息以及招聘详情
针对这种招聘信息,使用crawlscrapy很适合。
1、settings.py
# -*- coding: utf-8 -*- # Scrapy settings for gosuncn project
#
# For simplicity, this file contains only settings considered important or
# commonly used. You can find more settings consulting the documentation:
#
# https://doc.scrapy.org/en/latest/topics/settings.html
# https://doc.scrapy.org/en/latest/topics/downloader-middleware.html
# https://doc.scrapy.org/en/latest/topics/spider-middleware.html BOT_NAME = 'gosuncn' SPIDER_MODULES = ['gosuncn.spiders']
NEWSPIDER_MODULE = 'gosuncn.spiders' LOG_LEVEL="WARNING"
LOG_FILE="./gxx.log"
# Crawl responsibly by identifying yourself (and your website) on the user-agent
#USER_AGENT = 'gosuncn (+http://www.yourdomain.com)' # Obey robots.txt rules
ROBOTSTXT_OBEY = True # Configure maximum concurrent requests performed by Scrapy (default: 16)
#CONCURRENT_REQUESTS = 32 # Configure a delay for requests for the same website (default: 0)
# See https://doc.scrapy.org/en/latest/topics/settings.html#download-delay
# See also autothrottle settings and docs
#DOWNLOAD_DELAY = 3
# The download delay setting will honor only one of:
#CONCURRENT_REQUESTS_PER_DOMAIN = 16
#CONCURRENT_REQUESTS_PER_IP = 16 # Disable cookies (enabled by default)
#COOKIES_ENABLED = False # Disable Telnet Console (enabled by default)
#TELNETCONSOLE_ENABLED = False # Override the default request headers:
#DEFAULT_REQUEST_HEADERS = {
# 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
# 'Accept-Language': 'en',
#} # Enable or disable spider middlewares
# See https://doc.scrapy.org/en/latest/topics/spider-middleware.html
#SPIDER_MIDDLEWARES = {
# 'gosuncn.middlewares.GosuncnSpiderMiddleware': 543,
#} # Enable or disable downloader middlewares
# See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html
#DOWNLOADER_MIDDLEWARES = {
# 'gosuncn.middlewares.GosuncnDownloaderMiddleware': 543,
#} # Enable or disable extensions
# See https://doc.scrapy.org/en/latest/topics/extensions.html
#EXTENSIONS = {
# 'scrapy.extensions.telnet.TelnetConsole': None,
#} # Configure item pipelines
# See https://doc.scrapy.org/en/latest/topics/item-pipeline.html
ITEM_PIPELINES = {
'gosuncn.pipelines.GosuncnPipeline': 300,
} # Enable and configure the AutoThrottle extension (disabled by default)
# See https://doc.scrapy.org/en/latest/topics/autothrottle.html
#AUTOTHROTTLE_ENABLED = True
# The initial download delay
#AUTOTHROTTLE_START_DELAY = 5
# The maximum download delay to be set in case of high latencies
#AUTOTHROTTLE_MAX_DELAY = 60
# The average number of requests Scrapy should be sending in parallel to
# each remote server
#AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
# Enable showing throttling stats for every response received:
#AUTOTHROTTLE_DEBUG = False # Enable and configure HTTP caching (disabled by default)
# See https://doc.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
#HTTPCACHE_ENABLED = True
#HTTPCACHE_EXPIRATION_SECS = 0
#HTTPCACHE_DIR = 'httpcache'
#HTTPCACHE_IGNORE_HTTP_CODES = []
#HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'
2、pipelines.py
# -*- coding: utf-8 -*- # Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://doc.scrapy.org/en/latest/topics/item-pipeline.html import logging
import re
logger = logging.getLogger(__name__)
class GosuncnPipeline(object):
def process_item(self, item, spider):
"""
数据处理在pipelines中进行
:param item:
:param spider:
:return:
"""
item["job_responsible"] = re.sub(r"<p>\r\n ","",item["job_responsible"])
item["job_responsible"] = re.sub(r"\r\n </p>", "", item["job_responsible"])
item["job_responsible"] = re.sub(r"(<br>{1,2})", "", item["job_responsible"])
item["job_responsible"] = re.sub(r"\t", "", item["job_responsible"])
logger.warning(item)
print(item)
return item
3、gxx.py
# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule import re
import logging
logger = logging.getLogger(__name__)
class GxxSpider(CrawlSpider): name = 'gxx'
allowed_domains = ['gosuncn.zhiye.com']
start_urls = ['https://gosuncn.zhiye.com/social/?PageIndex=1'] rules = (
Rule(LinkExtractor(allow=r'/zpdetail/\d+\?PageIndex=\d'), callback='parse_item',), #获取详情页信息
Rule(LinkExtractor(allow=r'/social/\?PageIndex=\d+'), follow=True), #翻页
) def parse_item(self, response):
item = {}
item["job_name"] = response.xpath("//div[@class='boxSupertitle']/span/text()").extract_first() #工作名
ul_list = response.xpath("//div[@class='xiangqingcontain']/ul[1]")
for ul in ul_list:
item["recuirt_type"] = ul.xpath("./li[2]/text()").extract_first()
item["recuirt_type"] = re.sub("\r\n ", "", item["recuirt_type"])#招聘类型
item["recuirt_type"] = re.sub("\r\n ", "", item["recuirt_type"])
item["job_type"] = ul.xpath("./li[4]/text()").extract_first()
item["job_type"] = re.sub("\r\n ", "", item["job_type"])
item["job_type"] = re.sub("\r\n ", "", item["job_type"]) #工作类型
item["pay_money"] = ul.xpath("./li[6]/text()").extract_first() #薪资
item["pay_money"] = re.sub("\r\n ", "", item["pay_money"]) # 招聘类型
item["pay_money"] = re.sub("\r\n ", "", item["pay_money"]) item["publish_time"] = re.findall("20\d+\-\d+\-\d+", response.body.decode())[0] # 发布时间
item["recuirt_num"] = ul.xpath("./li[8]/text()").extract_first() #招聘人数
item["recuirt_num"] = re.sub("\r\n ", "", item["recuirt_num"]) # 招聘类型
item["recuirt_num"] = re.sub("\r\n ", "", item["recuirt_num"]) item["job_place"] = response.xpath("//div[@class='xiangqingcontain']/ul[3]/li[2]/text()").extract_first()
item["job_place"] = re.sub("\r\n\r\n ", "", item["job_place"]) # 招聘类型
item["job_place"] = re.sub("\r\n ", "", item["job_place"])
#logger.warning(item)
#print(item) item["job_responsible"] = response.xpath("//div[@class='xiangqingtext']/p[2]").extract_first() yield item
# for li in li_list:
# li.xpath("") #item["publish_time"] =response.xpath("/html/body/div/div[3]/div/div[1]/div/div/div/div[2]/ul[2]/li[2]/text()").extract_first()
#
#item["publish_time"] = re.findall("20\d+\-\d+\-\d+",response.body.decode())[0] #发布时间 #item['domain_id'] = response.xpath('//input[@id="sid"]/@value').get()
#item['name'] = response.xpath('//div[@id="name"]').get()
#item['description'] = response.xpath('//div[@id="description"]').get()
#print(item)
#return item
python之crawlscrapy爬取某集团招聘信息以及招聘详情的更多相关文章
- python之scrapy爬取某集团招聘信息以及招聘详情
		1.定义爬取的字段items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See do ... 
- [Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)
		转载自:http://blog.csdn.net/eastmount/article/details/51231852 一. 文章介绍 源码下载地址:http://download.csdn.net/ ... 
- Python爬虫项目--爬取自如网房源信息
		本次爬取自如网房源信息所用到的知识点: 1. requests get请求 2. lxml解析html 3. Xpath 4. MongoDB存储 正文 1.分析目标站点 1. url: http:/ ... 
- 【Python项目】爬取新浪微博个人用户信息页
		微博用户信息爬虫 项目链接:https://github.com/RealIvyWong/WeiboCrawler/tree/master/WeiboUserInfoCrawler 1 实现功能 这个 ... 
- python之scrapy爬取某集团招聘信息
		1.创建工程 scrapy startproject gosuncn 2.创建项目 cd gosuncn scrapy genspider gaoxinxing gosuncn.zhiye.com 3 ... 
- Python爬虫项目--爬取某宝男装信息
		本次爬取用到的知识点有: 1. selenium 2. pymysql 3 pyquery 正文 1. 分析目标网站 1. 打开某宝首页, 输入"男装"后点击"搜索&q ... 
- Python爬虫之爬取慕课网课程评分
		BS是什么? BeautifulSoup是一个基于标签的文本解析工具.可以根据标签提取想要的内容,很适合处理html和xml这类语言文本.如果你希望了解更多关于BS的介绍和用法,请看Beautiful ... 
- Python:将爬取的网页数据写入Excel文件中
		Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ... 
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
		[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ... 
随机推荐
- ST3 C程序自动补全
			参考: http://www.cnblogs.com/heleifz/p/3404600.html http://www.cnblogs.com/By-ruoyu/p/4687196.html htt ... 
- c语言之一个简单的《学生教师管理系统》小结记录(二)
			本篇博文用来记录学生头/教师文件建立以及结构体链表创建及链表相关操作 首先是头文件的建立 头文件包含学生结构体以及链表结构 1.学生结构体建立 /****定义学生信息******/ typedef s ... 
- 微信小程序开发(七)获取手机网络类型
			// succ.wxml <view>手机网络状态:{{netWorkType}}</view> // succ.js var app = getApp() Page({ da ... 
- NUC970 Linux CAN 驱动问题及解决办法之二
			开发平台介绍: NUC970 + 内置CAN控制器(双通道CAN1\CAN2) + 官方Linux_Kernel(少量修改) 名词: 终端,使用NUC970的硬件 异常表现: 1.当CAN收发器(VP ... 
- ini文件读写 保存上次存储内容
			using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ... 
- 【Java 关键字this 的使用】还阔以调用重载的构造方法
			笔记: /** this 关键字的使用除了调用方法和变量外, * 还可以用来显示 调用当前类的重载的指定的构造方法! * 同时也应该必须放到该方法内部的首行! */ 测试: import java.l ... 
- iOS的VideoToolBox与Android的MediaCodec对PTS的处理异同
			视频源,不论是从采集设备采集到的,还是本身压制好的文件,其流中的数据都是按照编码顺序存储的.比如1 2 3 4 5,5帧视频数据,1编码成I帧,2 3 4编码成B帧,5编码成P帧. 编码过程: 1. ... 
- template.js 求和 问题
			基本适应方法在这不做叙述 <table> <tr> <th>值</th> <th>值</th> <th>值</ ... 
- CSS网站收藏
			css3动画:http://isux.tencent.com/css3/tools.html 
- Bootstrap Popover(弹出框)弹出自定义格式代码
			HEAD 标签之间引入CSS:<link href="../../../public/css/bootstrap.min.css" rel="stylesheet& ... 
