python爬虫scrapy框架爬智联招聘并保存mysql和本地json文件

scrapy实战一:爬取boss直聘信息,存入mysql数据库 scrapy版本:1.5python版本:3.6系统:windows网站链接: www.zhipin.com1 创建项目CTRL+R 输入cmd打开DOS窗口,输入如下命令创建项目(可自定义项目位置)scrapy startproject job_demo 从图片中可以看到,你可以进入你的项目然后创建你的spidercd Job_demo新建spider蜘蛛scrapy genspider j... 阅读详情

本文声明:仅为了学习爬虫编写,请勿商业或恶意攻击网站,解释权归作者所有
由于智联招聘网的信息是动态加载的,所有对于新手比较难爬,重点在于找准确请求url
注意:前三个字段是同一个请求,address字段是详情页
实现效果:mysql
在这里插入图片描述
实现效果:json文件
在这里插入图片描述

#执行文件
# -*- coding: utf-8 -*-

import scrapy
import json
from zlzp.items import ZlzpItem
# 下面这个类urlencode,用于get路由拼接 a=1&b=2&c=3
from urllib.parse import urlencode

class ZlspiderSpider(scrapy.Spider):
    name = 'zlspider'
    # allowed_domains = ['sou.zhaopin.com']
    start_urls = ['https://fe-api.zhaopin.com/c/i/sou?']

    def start_requests(self):
        print("成伟无敌最俊朗。。。")
        for i in range(0,1001,90):
            data = {
                "start":i,
                "pageSize":90,
                "cityId":538,
                "kw":"python",
                "kt":3
            }
            for url in self.start_urls:
                new_url = url + urlencode(data)
                yield scrapy.Request(url=new_url,callback=self.parse)

    def parse(self, response):
        data = json.loads(response.text)
        res1 = data["data"]
        res2 = res1["results"]
        for i in res2:
            # 每个公司都实例化一个item
            item = ZlzpItem()
            item["position"] = i["jobName"]
            item["name"] = i["company"]["name"]
            item["salary"] = i["salary"]
            # 找到详情页的连接
            positionURL = i["positionURL"]
            yield scrapy.Request(url=positionURL,callback=self.detail,meta={"item":item})

    # 详情页
    def detail(self,response):
        item = response.meta["item"]
        address = response.xpath('//div[@class="job-address"]/div/span/text()').get()
        item["address"] = address
        # print(item)
        # 提交数据到管道
        yield item

items.py文件

import scrapy


class ZlzpItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    position = scrapy.Field()
    name = scrapy.Field()
    salary = scrapy.Field()
    address = scrapy.Field()
    pass

settings.py文件

USER_AGENT= "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"
# Obey robots.txt rules
ROBOTSTXT_OBEY = False
# 开启管道
ITEM_PIPELINES = {
   'zlzp.pipelines.ZlzpPipeline': 300,
   'zlzp.pipelines.ZlzpJsonPipeline': 301,
}

pipelines.py管道文件

# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html
import pymysql
import json
import codecs
import os
# 保存到数据库
class ZlzpPipeline(object):
    conn = None
    mycursor = None
    # 打开数据库
    def open_spider(self,spider):
        print("数据库连接中。。。")
        # 连接数据库
        self.conn = pymysql.connect(host='localhost',user='root',password='root123',db="scrapy1",port=3306)
        # 获取游标
        self.mycursor = self.conn.cursor()
    # 执行爬虫
    def process_item(self, item, spider):
        position = item["position"]
        name = item["name"]
        salary = item["salary"]
        address = item["address"]
        # 插入记录
        sql = "insert into zhilian values (null,'%s','%s','%s','%s')"%(position,name,salary,address)
        # 执行
        self.mycursor.execute(sql)
        # 提交 执行的SQL才能生效
        self.conn.commit()
        print("正在插入%s的数据..."%name)
        return item
    # 关闭爬虫
    def close_spider(self,spider):
        print("断开数据库连接。。。")
        # 关闭游标
        self.mycursor.close()
        # 关闭数据库
        self.conn.close()

# 保存到json文件
class ZlzpJsonPipeline(object):
    f = None
    # 开始爬虫
    def open_spider(self,spider):
        # 如果不使用codecs.open打开文件,则close_spider里面的语句不生效,就是一个编码和解码的工具
        self.f = codecs.open("zlzp.json","w",encoding="utf-8")
        # 写入下面的字符串
        self.f.write('"list":[')
    # 执行爬虫
    def process_item(self,item,spider):
        # 想存储json文件,就得把item对象转变为字典对象
        res = dict(item)
        # 再把字典对象转换为json数据
        # 这是因为json.dumps 序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False:
        # 直接写入字典会保存,所以把字典形式的作为list列表的值字符串格式写入
        str = json.dumps(res,ensure_ascii=False)
        # 把数据写入json文件
        self.f.write(str + "," + "\n")
        return item
    # 关闭爬虫
    def close_spider(self,spider):
        #  SEEK_END 移动游标到文件最后,再向前偏移2个字符
        self.f.seek(-2,os.SEEK_END)
        # 移除偏移后的所有字符 移除了逗号,和一个换行符\n
        self.f.truncate()
        # 完成列表尾部
        self.f.write("]")
        # 关闭文件
        self.f.close()


(智联爬虫、推荐算法)基于文本挖掘的IT类人才招聘画像数据可视化分析系统的设计与实现(python mysql flask vue) 摘要] 随着信息技术的飞速发展,IT类人才的招聘已成为企业发展的关键环节。本文基于文本挖掘技术,设计并实现了一套IT类人才招聘画像数据可视化分析系统,旨在提供全面而直观的招聘数据分析服务。该系统采用了多种技术,包括Python、Flask、MySQL、Echarts、Scrapy以及Vue,以构建一个功能丰富、高效稳定的招聘平台。首先,通过Scrapy技术,系统能够实现对智联招聘网站的数据爬取,获取最新的招聘信息。而后,通过数据清洗技术,确保所获取的信息准确、规范,为后续的分析提供高质量的数据基础。 阅读详情

相关推荐

python3爬虫系列08之新版动态智联招聘并存取数据库进行可视化分析

python3爬虫系列08之新版动态智联爬虫和存取数据库进行可视化分析 本篇是面向新版动态智联爬虫,数据存储到Mysql数据库,最后使用pyecharts读取并可视化分析。 在这之前,上一篇说的是 python3爬虫系列07之动态网页Json 数据,爬虫要怎么搞? 里面的实战是使用requests+json爬虫:根据输入词爬取豆瓣热门影片。 以及对json的分析和对文件的操作工具类: json对象...

空空说技术的博客 1万+

Python爬虫 scrapy框架 爬取智联招聘,并把数据存入数据库,存为json格式的数据

First:创建项目:执行下面三句命令: 1、 scrapy startproject zhilianzhaopin 2、 cd zhilianzhaopin 3、scrapy genspider zhilian www.zhaopin.com 项目已经创建完毕,话不多说,开始我的表演: 由于智联招聘的数据是动态加载的,所以,...

weixin_44794964的博客 2216

第 1 篇:什么是网络爬虫 —— 从一个故事读懂爬虫的本质

网络爬虫(Web Crawler / Web Spider / Web Robot),是一种按照一定规则,自动地抓取互联网信息的程序或脚本。它模拟人类浏览网页的行为(输入 URL → 服务器返回页面 → 解析页面 → 提取数据),但用程序代替人,速度可以快到每秒几千次。你可以把爬虫想象成一个永不疲倦的图书管理员你告诉它"去国家图书馆"(起始 URL);它走到书架前,把书名、作者、出版日期抄下来(提取数据);然后顺着书里的"参考文献"走到下一个书架(链接跟踪);

2201_76125261的博客 807

pymysql.Error 获取错误码与具体错误信息

#-*-coding:utf-8-*- import pymysql import time import traceback # 打开数据库连接 db = pymysql.connect("127.0.0.1", "root", "123456", "dbname") # 使用cursor()方法获取操作游标 cursor = db.cursor(cursor=pymysql.cursors...

supramolecular的博客 7011

基于scrapy框架的智联招聘爬虫

智联招聘是一个典型的用ajax加载数据的网站 我爬了大概七八万条数据,目前还没有被封IP,

Qoder + ADB Supabase :5分钟GET超火AI手办生图APP

本文介绍如何利用Qoder、阿里云 ADB Supabase 和通义千问图像编辑模型,快速构建AI手办生图Flutter应用。无需传统后端,通过AI生成代码、BaaS服务与边缘函数调用,实现从原型到上线的敏捷开发,全流程轻量高效,助力Vibe Coding落地实践。

数据库技术 931

scrapy爬取智联招聘中python工程师的招聘信息

#-*-coding:utf-8-*- ''' importsys importcodecs importchardet importscrapy fromscrapyimportlog fromscrapy.selectorimportSelector fromtutorial.itemsimportDmozItem ''' impor...

weixin_33973600的博客 148

02.Palantir Foundry平台功能和应用全景图

本文深入解析 Palantir Foundry 平台核心功能与应用全景。

683

scrapy 智联 mysql_scrapy 爬取智联招聘

#-*- coding: utf-8 -*-importosimportjsonfrom tinydb importTinyDB, Queryfrom furl importfurlimportscrapyclassZhaopinspiderSpider(scrapy.Spider):name= 'ZhaopinSpider'allowed_domains= ['www.zhaopin.com',...

weixin_29476595的博客 332

保姆级教程:在PX4 Gazebo仿真中为Iris无人机挂载Intel D435i深度相机(含完整配置流程)

本文提供在PX4 Gazebo仿真环境中为Iris无人机挂载Intel D435i深度相机的完整配置流程,涵盖环境准备、模型部署、插件安装及调试技巧。通过详细步骤和常见问题解决方案,帮助开发者快速搭建深度相机仿真环境,适用于无人机视觉开发与算法测试。

weixin_28688385的博客 335

DataGridView 右键菜单复制(公共)

dataGridView1.CellMouseClick += new DataGridViewCellMouseEventHandler( (sender1, e1) => { if (e1.Button == MouseButtons.Right) {

沁心渃水 2829

scrapy框架爬取智联招聘网站上深圳地区python岗位信息。

爬取字段,公司名称,职位名称,公司详情的链接,薪资待遇,要求的工作经验年限 1,items中定义爬取字段 import scrapy class ZhilianzhaopinItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() ...

weixin_30856965的博客 195

AI辅助Android开发:从传统到智能化的技术演进

AI辅助开发的核心在于利用算法模型自动化或优化传统任务。在Android开发中,AI可应用于需求分析、设计、编码、测试和维护各阶段。需求分析:AI工具如基于NLP的模型(例如GPT系列)可解析用户需求文档,自动生成用户故事和原型设计。假设产品需求为“开发一个航班查询应用”,AI能提取关键词,输出UML图或伪代码。代码生成:使用AI代码助手(如GitHub Copilot),工程师输入自然语言描述,AI生成Java/Kotlin代码片段。

郑伟强dev的专栏 137

爬取智联招聘上24座热门城市中Java招聘信息

一、确定URL及其传递的参数 获取北京中Java的招聘信息url: 获取上海中Java的招聘信息url: 通过对比得知,url中传递了三个参数,jl代表城市的编号,kw代表职业,p代表当前在招聘页面的第几页 二、判断数据是否动态显示 执行以下代码后,然后在开发工具中打开浏览器查看页面 import requests from fake_useragent import UserAgent headers = { 'User-Agent': UserAgent().random } url =

yeyu_xing的博客 1332

6、线性时序逻辑到确定性自动机的翻译

本博文详细介绍了将线性时序逻辑(LTL)转化为确定性自动机的理论基础、技术方法和实际应用。内容涵盖LTL的基本运算符、确定性自动机的特点及其在模型检测中的作用,以及具体的翻译步骤与优化策略。通过实际案例展示了如何利用这一技术进行系统属性验证,并探讨了翻译过程中可能遇到的挑战及解决方案。

gpu4optimizer的博客 149

华为OD机试 - 不含101的数(Python/JS/C/C++ 双机位C卷 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。小明在学习二进制时,发现了一类不含101的数,也就是:现在给定一个正整数区间,请问这个区间内包含了多少个不含101的数?输入的唯一一行包含两个正整数。输出的唯一一行包含一个整数,表示在区间内一共有几个不含101的数。8 1668 → “1000”

学Java,找哪吒 1249

Scrapy框架爬取智联招聘网站上海地区python工作第一页(90条)

1. 创建项目:   CMD下      scrapy startproject zhilianJob    然后 cd zhilianJob , 创建爬虫文件 job.py: scrapy genspider job xxx.com 2. settings.py 中: USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64...

diaojing1670的博客 323

基于STM32、HAL库的WF282A气压传感器 驱动程序设计

测量范围:0-2.5MPa(可根据需求选择其他量程)输出方式:I2C或SPI数字接口。温度补偿范围:-20℃~85℃。低功耗设计,适合电池供电应用。工作电压:3.3V/5V。精度:±0.1%FS。

corlin6688的博客 394

(补充)scrapy框架爬取智联招聘信息--上海python工作

1. job.py: 据观察,pageSize参数可以控制页码,一页90个工作,这里做了一个用户交互,输入数字,即下载相应的前几页的工作信息。  # -*- coding: utf-8 -*- import scrapy import json from zhilianJob.items import ZhilianjobItem class JobSp...

diaojing1670的博客 393

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python爬虫实战:如何高效抓取多平台数据

高效多平台爬虫技术指南 在数据驱动时代,多平台爬虫技术成为获取跨平台数据的关键。本文分享了构建高效多平台爬虫的核心方法,包括:1) 统一爬虫结构设计,采用基类继承模式适应不同平台;2) 处理HTML/JSON/XML等多样数据格式;3) 突破反爬机制,如代理池、随机UA和验证码识别;4) 使用Scrapy-Redis实现分布式爬取;5) 多种数据存储方案和自动化调度工具。通过实际案例,帮助开发者从入门到精通多平台数据抓取,满足市场分析、数据监控等业务需求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1954

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

大数据技术的基于Python的招聘网站爬虫及可视化的实现flask vue

HDFS放宽了POSIX的要求,可以以流的形式访问文件系统中的数据。2、同时增加文字触发提醒,设置提醒语,有相同字段的数据,会触发弹框提醒,例如设置状态提醒:特急/加急/一般 增加自定义提醒语(如:库存不足,请补货)8、AI续写、AI优化、AI校对、AI翻译:新增AI接口,编辑器接入AI,可以实现AI续写、AI优化、AI校对、AI翻译,可以帮你实现自动化,ai帮你完成文档。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

qq_840612233的博客 772

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

网络爬虫之scrapy爬取某招聘网手机APP发布信息

1 引言 过段时间要开始找新工作了,爬取一些岗位信息来分析一下吧。目前主流的招聘网站包括前程无忧、智联、BOSS直聘、拉勾等等。有段时间时间没爬取手机APP了,这次写一个爬虫爬取前程无忧手机APP岗位信息,其他招聘网站后续再更新补上…… 所用工具(技术): IDE:pycharm Database:MySQL ...

chb4715的博客 349

基于python的网络招聘数据可视化平台系统招聘网站数据分析系统(源码+lw+部署文档+讲解等)

本课题针对网络招聘数据分散杂乱、行业趋势难洞察、求职者选岗决策难等痛点,结合数据爬虫与可视化技术发展趋势,设计实现基于Python的网络招聘数据可视化平台系统。系统以“多平台数据采集、全维度可视化分析”为核心,采用Python作为开发语言,依托Scrapy、Requests框架爬取主流招聘网站(智联招聘、前程无忧、BOSS直聘)的招聘数据(岗位名称、薪资范围、行业类型、地域分布、技能要求等),通过Pandas、NumPy完成数据清洗、去重与结构化处理,借助Matplotlib、Plotly、ECharts实

优快云毕设辅导道祖第一人、全网粉丝50W+,专注于大学生项目实战开发,讲解,毕业答疑辅导,高校老师/讲师/同行合作。以及产品测评宣传、工具推广等合作。同时招收学生代理、校园代理。 975

基于Python的高校毕业生招聘信息推荐系统 爬虫 数据分析可视化大屏系统mpohdj33

该系统基于Python技术栈开发,整合了爬虫、数据分析与可视化功能,旨在为高校毕业生提供智能化的招聘信息推荐服务。系统通过爬虫抓取主流招聘平台数据,结合机器学习算法分析岗位匹配度,最终以交互式大屏展示关键指标,提升求职效率。本次研究将达到的毕业课程设计系统主要有以下主要流程:数据收集:使用Python语言,现成的爬虫框架和工具包降低了使用门槛,具体使用时配合正则表达式的运用,使得数据抓取工作变得更加简单。

懒人的博客 486

Vue+Python构建招聘数据分析系统实战

Web开发中,前后端分离架构已成为主流技术方案,Vue.js作为渐进式前端框架,以其轻量高效的特点广受欢迎。结合Python强大的数据处理能力,特别是Flask/Django等后端框架,可以构建完整的数据采集、处理与可视化系统。在招聘数据分析场景下,这种技术组合能有效解决数据采集效率低、分析维度单一等痛点。通过Scrapy爬虫实现多平台数据聚合,利用MongoDB进行非结构化数据存储,再借助Vue+ECharts实现可视化看板,最终形成从数据源到业务洞察的闭环。典型应用包括薪资分布分析、技能词云展示等,为H

weixin_30600197的博客 383

爬虫框架Scrapy

一、安装1、Python2.7Linux默认都有Python,但若是2.6版本,则需要升级到2.7,升级到2.7需要以下步骤: 首先下载源tar包,可利用linux自带下载工具wget下载,如下所示: wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz 下载完成后到下载目录下,解压; tar -zxvf Python-

UFO的博客 715
上一篇: python爬虫scrapy框架爬取糗妹妹段子首页
下一篇: 关于爬虫在部署或爬取时编码报错问题的解决
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值