Scrapy 通用爬虫爬取广西人才网数据记录(下,职位信息)

开发十年,就只剩下这套Java开发体系了 >>>   hot3.png

前言

在记录的上篇,已经大致描述了翻页、取值、follow跟进和文件存储的内容,这次在上半部分的基础上进行调整,爬取广西人才网职位信息数据。


坑坑坑

当然了,这里的坑还是有的,记录一下绕坑。 在爬取过程中我是想既拿到职位信息id也拿到企业id,到时候入库,到数据库中进行联合查询就能取到完整的数据信息了。另一个角度讲来,拿到id进行hash后生成唯一字符串,也可以在入库的时候作为去重的判断条件。它的职位信息url有两种格式:

  • 一种是直接[PositionId=1hifduik-0989-lk264-9038]
  • 另外一种是[EnterpriseID=1106074&PositionId=ba84494a-5b9e-4616-a744-8d6d512ad7aa]

在我取值的页面是第二种,较长的url,包含了企业id和职位id。正则我不是很熟,所以要匹配PositionId的值还是想了半个小时的,快速精准的取到id值,在spider中我直接获取整条url,然后在item中对url字符串进行处理,拿到id并且进行生成固定长度的字符串。


代码演示

spider代码为:

start_urls = []
    for i in range(1, 500):
        """ 翻页 """
        i = str(i)
        s_urls = "http://s.gxrc.com/sJob?schType=3&page= %s" % (i)
        start_urls.append(s_urls)

    rules = (
        Rule(LinkExtractor(allow=r'/WebPage/JobDetail.aspx\?EnterpriseID=\d+&PositionId=.*'), callback='parse_item', follow=True),
    )

iloaders.add_value("job_url_id", response.url)
    

大概是这样,把url传递过去。


item的代码为:


def get_joburl_id(value):
    """
    将job url中的字符串id取出来
        用[::-1]进行字符串翻转,匹配到字符串后将值再次[::-1]翻转  负负得正
        然后将id进行加密,生成固定长度的字符串,以在数据库中进行入库去重
    """
    match = re.search('[\w-]+', value[::-1])
    if match:
        value = match.group(0)
    value = get_md5(value[::-1])
    return value


job_url_id = scrapy.Field(input_processor=MapCompose(get_joburl_id))

主要逻辑是在url字符串传递过来后,通过翻转字符串,精准匹配职位id,然后再次翻转字符串,将正确顺序的职位id生成固定长度字符串。


注意: 最后更改setting配置,将之前开启的图片下载pipeline关闭、并且在pipeline代码中也另外生成一个新的json文件,以免覆盖之前的企业信息json文件。

数据展示

以下是部分数据:

{"job_url": "http://www.gxrc.com/WebPage/JobDetail.aspx?EnterpriseID=76542&PositionId=baa2d0c2-d71c-4381-944c-835f0fd85d6d", "job_url_id": "e4c5b8310bbf1b77fd1ee9aa16fa24fb", "job_name": "大客户经理", "job_company": "税友软件集团股份有限公司广西分公司", "job_company_id": 76542, "job_need_nums": "2人", "job_education": "大专", "job_salary": "5001-6000", "job_w_life": "不限", "job_w_place": "南宁市", "job_w_type": "全职", "job_major": "不限", "job_p_height": "168CM以上", "job_p_age": "23-35", "job_p_register": "不限", "job_p_gender": "不限", "job_position": "无", "job_language": "2018-1-16 至 2018-4-30", "job_period": "2018-1-16 至 2018-4-30", "job_welfare": "周末双休,五险,住房公积金,带薪年假,年终奖金,绩效奖金,节日福利,生日福利,餐饮补贴,交通补贴,差旅费补贴,员工旅游,员工培训", "job_content": ["\r\n                                        工作内容:", "1、负责VIP版用户销售工作并保障服务。", "2、负责对用户进行产品安装、上门服务、远程服务、部分咨询服务,定期巡查、上门回访。", "3、负责用户信息管理。", "4、收集产品存在的问题和用户需求信息,向部门经理提出需求改进意见。", "5、定期整理和提交服务问题、软件问题、业务问题,参加共享学习,参加业务和技术交流,提高自身问题解决能力。", "6、根据上级安排,参加市场调研和市场营销活动。", "7、组织或参加用户培训及相关工作。", "8、做好其他各项日常工作。", "9、完成上级布置的其他临时性工作。", "任职要求:", "1、计算机相关专业, 大专及以上学历。", "2、人际交往能力优秀,善于沟通协调。", "3、至少从事过1年的客户销售或服务工作,对客户销售及服务相关环节都有一定的了解。", "4、能够妥善处理与用户的关系,有一定的营销意识,有较强的服务意识。", "5、规范意识强,严格按制度、规范、流程办事,决不徇私舞弊。", "6、学习能力强,能不断接受新知识,新观念,新办法,并妥善共享。", "福利待遇(正式员工):", "1.丰厚的无责任底薪+可观的绩效奖金(业绩提成上不封顶)+丰富的评优奖励+五险一金+商业保险+节假福利+生日福利+体检福利+双休+节假休+旅游拓展+团队聚餐+员工活动+内部培训+外部培训", "2.每年至少一次竞聘管理岗位的机会(晋升途径)+每年至少一次职评机会(调薪途径)\r\n                                    "]}
{"job_url": "http://www.gxrc.com/WebPage/JobDetail.aspx?EnterpriseID=41679&PositionId=a12be872-b646-4e41-b644-9254c31b640d", "job_url_id": "6d346cc0823ae89873eef72ff6482e79", "job_name": "销售代表", "job_company": "中企动力科技股份有限公司南宁分公司", "job_company_id": 41679, "job_need_nums": "5人", "job_education": "不限", "job_salary": "8001-10000", "job_w_life": "不限", "job_w_place": "南宁市", "job_w_type": "全职", "job_major": "不限", "job_p_height": "不限", "job_p_age": "20-26", "job_p_register": "不限", "job_p_gender": "不限", "job_position": "无", "job_language": "2018-1-16 至 2018-1-24", "job_period": "2018-1-16 至 2018-1-24", "job_welfare": "五险,住房公积金,带薪年假,节日福利,餐饮补贴,员工旅游,员工培训", "job_content": ["\r\n                                        优秀应届毕业生", "2017年应届毕业生,专科及以上学历,市场营销、通信工程、信息工程、互联网营销、电子商务、经济管理、国际商务等相关专业优先;", "积极主动的心态,愿意接受挑战,发现新的自己;", "能吃苦,能承受较大的工作压力;", "性格外向,反应灵敏,沟通表达能力强;", "公司提供:完善的营销体系培训、产品知识培训及后台支持,人性化管理,校园式工作环境。", "晋升空间:商务代表-商务经理-分总司总监-区域总监", "晋级空间:商务代表 -高级商务代表 -资深商务代表-客户主任- 资深客户顾问 -产品专家", "薪资构成:无责任底薪+高额提成+奖金+补贴      ", "福利待遇:一经录用,签订正式劳动合同,按国家规定缴纳社保(养老+医疗+生育+工伤+失业)和住房公积金,享受带新年假,生日祝福,年度旅游等。", "简历投递邮箱:[email protected]", "联系电话:0771-2203010", "联系人:黄小姐\r\n                                    "]}
{"job_url": "http://www.gxrc.com/WebPage/JobDetail.aspx?EnterpriseID=76542&PositionId=c7e7e5d9-80b6-495d-a375-82de56f9e047", "job_url_id": "0a4c084fc3baf7defd160574695cb47b", "job_name": "网络营销专员", "job_company": "税友软件集团股份有限公司广西分公司", "job_company_id": 76542, "job_need_nums": "1人", "job_education": "大专", "job_salary": "3001-4000", "job_w_life": "不限", "job_w_place": "南宁市", "job_w_type": "全职", "job_major": "不限", "job_p_height": "不限", "job_p_age": "23-28", "job_p_register": "不限", "job_p_gender": "不限", "job_position": "无", "job_language": "2018-1-16 至 2018-4-19", "job_period": "2018-1-16 至 2018-4-19", "job_welfare": "周末双休,五险,住房公积金,带薪年假,年终奖金,绩效奖金,生日福利,通讯补贴,员工旅游,员工培训", "job_content": ["\r\n                                        1、负责建设公司网络营销的商业流程体系。", "2、负责公司亿企赢网站、税友网的维护。", "3、负责营销QQ的维护及使用。", "4、负责微信相关的维护及使用。", "5、完成上级安排的其他临时性工作。", "任职要求:", "1、网络营销相关专业,有网络营销工作经验。", "2、性格外向,有抗压能力。", "3、有一定文章撰写能力。", "福利待遇(正式员工):", "1.丰厚的无责任底薪+可观的绩效奖金(业绩提成上不封顶)+丰富的评优奖励+五险一金+商业保险+节假福利+生日福利+体检福利+双休+节假休+旅游拓展+团队聚餐+员工活动+内部培训+外部培训", "2.每年至少一次竞聘管理岗位的机会(晋升途径)+每年至少一次职评机会(调薪途径)", "3.工资:面议\r\n                                    "]}
{"job_url": "http://www.gxrc.com/WebPage/JobDetail.aspx?EnterpriseID=1453047&PositionId=b64fb93f-b5fc-4266-b334-eece0891315c", "job_url_id": "b3def61b36dafe5dc53ffac197b92faf", "job_name": "经理", "job_company": "南宁市尚发房地产营销策划有限公司", "job_company_id": 1453047, "job_need_nums": "4人", "job_education": "不限", "job_salary": "6001-8000", "job_w_life": "1年以上", "job_w_place": "南宁市", "job_w_type": "全职", "job_major": "不限", "job_p_height": "不限", "job_p_age": "不限", "job_p_register": "不限", "job_p_gender": "不限", "job_position": "无", "job_language": "2018-1-16 至 2018-12-18", "job_period": "2018-1-16 至 2018-12-18", "job_content": ["\r\n                                        因分行开张,急需分行经理(店长)、网络部经理、团购经理、项目经理。", "如果你在地产行业做得还可以,又比较愿意帮助和带领团队", "来吧,如果你现在有愿意跟你的队员,那就一起过来;如果没有队员也不要紧,我们一起去招聘,招聘你想要的人员,", "组建一个属于你的团队!", "工作内容:该职位主要是负责管理相应的销售团队。尚发地产是一个崭新的平台,这是和普通房产公司不一样的机会,我们深耕某个楼盘,然后将楼盘变成我们的基地,无论一手二手,都成为该楼盘最强最资深顾问。", "项目经理负责一手项目的对接与逼单。\r\n                                    "]}
{"job_url": "http://www.gxrc.com/WebPage/JobDetail.aspx?EnterpriseID=1500608&PositionId=6c4f9974-51ef-4ab8-b078-55ba9795d927", "job_url_id": "a446f8aebd615a78974ebc797518f4ba", "job_name": "销售总监", "job_company": "广西祥博信息技术有限公司", "job_company_id": 1500608, "job_need_nums": "2人", "job_education": "本科", "job_salary": "8001-10000", "job_w_life": "3年以上", "job_w_place": "南宁市", "job_w_type": "全职", "job_major": "不限", "job_p_height": "不限", "job_p_age": "25-35", "job_p_register": "不限", "job_p_gender": "不限", "job_position": "中级职称", "job_language": "2018-1-16 至 2018-2-10", "job_period": "2018-1-16 至 2018-2-10", "job_welfare": "周末双休,五险,年终奖金,节日福利", "job_content": ["\r\n                                        1、大专及以上学历,电子信息类,工程管理类、智能化信息化相关专业;2年以上项目管理经验,有交通工具优先。", "2、具有良好的沟通、协调及项目管理能力,耐心、有责任心。", "3、能独立完成信息化项目开工、工程实施、竣工调试验收等相关工作。", "4、具有出色的语言、沟通、组织和协调能力,跟各大厂商良好合作。", "5、熟悉一定的招投标流程。", "6、具有强烈的责任心、上进心;具备团队合作精神。\r\n                                    "]}

你可能感兴趣的:(Scrapy 通用爬虫爬取广西人才网数据记录(下,职位信息))