我的创作纪念日

机缘

在CSDN这片浩瀚的技术海洋中,今天迎来了我创作的第256天纪念日。回望这段旅程的起点,心中不禁涌动着诸多感慨与感激。在这特别的日子里,我想与大家分享一下最初成为CSDN创作者的初心,以及这段旅程中的点滴机缘。

最初踏上CSDN这片土地,我的初心源自于实战项目中的经验分享。在软件开发的世界里,每一个项目都是一次全新的探索与挑战。我深知,在解决问题的过程中,那些让人头疼的bug、那些让人绞尽脑汁的优化方案,往往也是成长最快的时刻。因此,我渴望将这些宝贵的经验记录下来,与同行们共享,让后来者能够少走弯路,更快地迈向成功。

随着创作的深入,我发现CSDN不仅仅是一个分享经验的平台,更是一个技术交流的宝库。在这里,我遇到了来自五湖四海的开发者,他们有的初出茅庐,对技术充满好奇;有的则是经验丰富的老手,拥有独到的见解和深厚的底蕴。我们相互学习,相互启发,在每一次的交流中碰撞出思想的火花。

同时,我也意识到,创作不仅仅是为了分享经验,更是一种自我提升的过程。在撰写文章的过程中,我需要不断地查阅资料、深入思考,确保每一个观点都经得起推敲。这种严谨的态度,不仅让我的技术水平得到了显著提升,更让我学会了如何更好地表达自己,如何让自己的想法更加清晰、有条理。

如今,站在CSDN创作的第256天,我深感荣幸与自豪。这段旅程中,我收获了知识、友谊和成长。每一次的点击、每一个点赞、每一条评论,都是对我创作的最大支持与鼓励。我深知,自己还有很多需要学习和提升的地方,但正是这些机缘,让我更加坚定了在CSDN这片土地上继续前行的决心。

展望未来,我将继续秉承初心,用心记录每一次的技术探索与成长历程,与更多的开发者共同分享、共同进步。我相信,在CSDN这片充满机遇与挑战的土地上,我们将携手创造更多的辉煌与可能。

感谢CSDN,感谢每一位支持我、陪伴我的开发者朋友。让我们携手前行,在技术的海洋中乘风破浪,共同书写属于我们的精彩篇章!


收获

在这个充满挑战与机遇的数字时代,CSDN不仅是我技术探索的灯塔,更是我心灵成长的沃土。今天,迎来了我在CSDN创作的第256天纪念日,心中满载着沉甸甸的收获与无尽的感激。在此,我想与各位分享这段旅程中的点点滴滴,以及我在创作过程中所获得的宝贵财富。

首先,最直观的收获便是那日益增长的粉丝数量。从最初的寥寥数人,到如今数千位志同道合的伙伴关注着我的每一次更新,这份信任与支持如同温暖的阳光,照亮了我前行的道路。

还记得每次写完文章都会经常看看阅读量和读者对我的一些意见,增加了多少关注,这些都是对我的认可,也满足了一下我的成就感,仿佛大家都在认可我,正是这种感觉激励着我继续深耕技术,分享更多有价值的内容。

除了粉丝的关注,我还收获了无数正向的反馈。无论是文章下方的点赞、评论,还是那不断攀升的阅读量,都是对我创作内容的直接肯定。这些反馈如同一股股清泉,滋润着我创作的热情,让我更加坚信,每一个字、每一句话,都能在这个平台上激起共鸣,引发思考。特别是那些深入讨论、提出建设性意见的评论,更是让我受益匪浅,促使我在技术探讨的道路上越走越远。

在CSDN这片广阔的天地里,我还有幸结识了许多志同道合的领域同行。他们有的是技术大拿,用深厚的专业知识为我答疑解惑;有的是初出茅庐的新手,用他们的好奇心和求知欲激发我不断探索未知的热情。我们在线上交流心得,线下相约探讨技术,这些珍贵的友谊,成为了我创作道路上不可或缺的力量源泉。

更为重要的是,这段创作经历让我学会了如何更好地表达自己,如何将复杂的技术知识转化为通俗易懂的语言,让更多人受益。我学会了倾听,学会了从读者的角度出发,思考他们真正需要的是什么。这种转变,不仅提升了我的写作能力,更让我在人际交往中变得更加敏锐和体贴。

总之,CSDN的256天创作之旅,是我人生中一段难忘的经历。它让我收获了知识、友谊、成长,更重要的是,它让我找到了属于自己的声音,让我有勇气在这个瞬息万变的世界中,坚持自己的热爱,不断前行。未来,我将继续秉承初心,用文字记录技术的魅力,与更多志同道合的伙伴共同探索未知,创造更多可能。


日常

  1. 创作,于我而言,已经悄然融入了生活的每一个角落,成为不可或缺的一部分。每天,无论是清晨的第一缕阳光洒进书房,还是夜晚的星辰点缀天际,我都习惯性地打开CSDN,或是整理思绪撰写新文,或是浏览他人的佳作,汲取灵感。创作,就像是一场与自我对话的旅程,让我在忙碌的工作与学习之余,找到了一片属于自己的精神家园。
  2. 然而,生活总是充满了挑战。在有限的精力下,如何平衡创作、工作与学习,成为了我必须面对的问题。我的秘诀是,将三者视为一个相互促进、相辅相成的整体。工作中遇到的难题,往往成为我创作的灵感来源;学习中的新知,则为我提供了源源不断的素材。而创作,则是我整理思绪、深化理解的过程,它不仅帮助我更好地消化工作中的实践经验,也为学习提供了新的视角和深度。
  3. 为了保持这种平衡,我养成了良好的时间管理习惯。我会根据任务的紧急程度和重要性,合理规划每一天的时间安排。早晨,通常是我最为清醒的时刻,我会选择进行深度创作或是学习新知识;下午和傍晚,则是处理工作事务、回复邮件和进行项目推进的时间;而夜晚,则是我反思总结、准备次日计划的时刻。这样的安排,既保证了工作的效率,也为创作和学习留出了充足的空间。
  4. 当然,平衡并非一成不变,它需要根据实际情况不断调整。有时,我会因为某个项目的紧急需求,暂时放下创作的笔,全身心投入到工作中;有时,又会因为某个技术难题的困扰,暂时放下工作,沉浸在学习的海洋中。但无论如何,我都始终保持着对创作的热爱和对知识的渴望,让这三者在我的生活中和谐共生。

成就

不知不觉已经获得了这么多勋章,虽然这些跟大佬们的比起来还什么都不是,但是每一个勋章的获取都让自己荣誉感满满,就好像军工勋章一样挂在自己身上

还记得最开始写作的时候,最让我满意的一次就是Python爬虫获取BOSS直聘,为了写这篇文章,特意去研究了好久的反爬机制,并且把反爬机制通过一篇文章进行了总结,虽然费了不少汗水,但是收获也颇多,现在再来回看一下当时的爬取BOSS直聘的代码

python 复制代码
# 自动化获取boss招聘网的信息
# 引入By Class,辅助元素定位
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from time import sleep
import pandas as pd
import undetected_chromedriver as uc
import random
 
#BOOS招聘网站
url = "https://www.zhipin.com/shanghai/"
#创建谷歌浏览器
browser = uc.Chrome()
#打开网页
browser.get(url=url)
#等待10秒钟,最好别访问太快
sleep(10)
# 选择搜索框
searching = browser.find_element(By.XPATH,
                                 '//input[@type="text" and @name="query" and @class="ipt-search" and @placeholder="搜索职位、公司"]')
# 输入金融,搜素金融相关的公司
searching.send_keys("金融")
# 点击搜索,通过回车点击
searching.send_keys(Keys.ENTER)
# 等待10秒
sleep(10)
#获取表格数据
#定义一个变量来判断循环的次数
num = 1
#定义一个空数组,后面用来存储数据
pd_lis = []
while True :
    #定位到岗位信息所在的li标签,通过num变量来确认获取哪一行的岗位信息
    mess = f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]'
    li = browser.find_element(By.XPATH,mess)
    # 指定职位等信息
    div_1 = li.find_element(By.XPATH, f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]/div[@class="job-card-body clearfix"]/a')
    # 获取职位
    job_title = div_1.find_element(By.XPATH,
                                   f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]/div[@class="job-card-body clearfix"]/a/div[@class="job-title clearfix"]/span[@class="job-name"]').text
    # 获取公司位置
    job_address = div_1.find_element(By.XPATH,
                                     f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]/div[@class="job-card-body clearfix"]/a/div[@class="job-title clearfix"]/span[@class="job-area-wrapper"]/span[@class="job-area"]').text
    # 获取薪资
    salary = div_1.find_element(By.XPATH, f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]/div[@class="job-card-body clearfix"]/a/div[@class="job-info clearfix"]/span[@class="salary"]').text
    # 确认工作经验所属位置
    work_experience = div_1.find_element(By.XPATH, f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]/div[@class="job-card-body clearfix"]/a/div[@class="job-info clearfix"]/ul[@class="tag-list"]')
    # 获取学历和工作经验
    work_experience_lis = work_experience.find_elements(By.TAG_NAME, 'li')
    # 定义一个变量,用来拼接学历和工作经验,因为有的公司有两个信息,有的公司有三个信息,有的公司没有信息
    work_experience = ""
    for we_li in work_experience_lis:
        work_experience = work_experience + we_li.text if work_experience == "" else work_experience + '/' + we_li.text
 
 
    # 获取招聘人员加招聘人员职位
    recruiter_position = div_1.find_element(By.XPATH,
                                            f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]/div[@class="job-card-body clearfix"]/a/div[@class="job-info clearfix"]/div[@class="info-public"]').text
    # 获取招聘人员职位
    position = div_1.find_element(By.XPATH, f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]/div[@class="job-card-body clearfix"]/a/div[@class="job-info clearfix"]/div[@class="info-public"]/em').text
    # 将招聘人员加招聘人员职位中剔除招聘人员职位,直接替换成空
    recruiter = recruiter_position.replace(position, "")
 
    # 指定公司信息
    div_2 = li.find_element(By.XPATH,
                            f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]/div[@class="job-card-body clearfix"]/div[@class="job-card-right"]/div[@class="company-info"]')
    # 公司名称
    company_name = div_2.find_element(By.TAG_NAME, 'h3').text
    # 获取公司类型/融资情况/人员规模
    company_type_ul = div_2.find_element(By.XPATH, f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]/div[@class="job-card-body clearfix"]/div[@class="job-card-right"]/div[@class="company-info"]/ul[@class="company-tag-list"]')
    company_type_lis = company_type_ul.find_elements(By.TAG_NAME, 'li')
    company_join = ""
    for company in company_type_lis:
        #获取公司类型/融资情况/人员规模
        company_join = company_join + company.text if company_join == "" else company_join + '/' + company.text
 
    # 获取公司对职位的要求ul标签
    company_requirements_ul = li.find_element(By.XPATH,
                                              f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]//div[@class="job-card-footer clearfix"]/ul[@class="tag-list"]')
    # 获取公司对职位的要求li标签
    company_requirements_lis = company_requirements_ul.find_elements(By.TAG_NAME, "li")
    company_requirements = ""
    for company_requirements_li in company_requirements_lis:
        #公司对职位的要
        company_requirements = company_requirements + company_requirements_li.text if company_requirements == "" else company_requirements + '/' + company_requirements_li.text
    # 获取公司福利
    company_benefits = li.find_element(By.XPATH, f'//div[@class="search-job-result"]/ul[@class="job-list-box"]/li[@ka="search_list_{num}"]//div[@class="job-card-footer clearfix"]/div').text
    '''
    job_title 职位 - 
    job_address 公司位置
    salary 薪资 - 
    work_experience 学历工作经验
    recruiter 招聘人
    position 招聘人所属职位
    company_name 公司名称
    company_join 公司类型/融资情况/人员规模
    company_requirements 公司要求
    company_benefits 公司福利
    '''
    pd_lis.append([company_name,job_title,salary, job_address, work_experience, recruiter, position, company_join,
                   company_requirements, company_benefits])
    if num % 30 == 0:
        if num == 300:
            df = pd.DataFrame(data=pd_lis,
                              columns=['公司名称','招聘职位', '薪资区间', '公司位置', '要求的学历/工作经验', '招聘人', '招聘人所属职位',
                                       '公司类型/融资情况/人员规模', '公司要求', '公司福利'])
            df.to_csv('/xxxxx/recruitment.csv')#自己本地的路径
            browser.close()
            browser.quit()
        else :
            #获取a标签下最后一个a标签,那个就是点击下一页
            page = browser.find_elements(By.XPATH,'//div[@class="options-pages"]/a')
            last_page = page[-1]
            #点击下一页
            last_page.click()
    num += 1
    sleep(random.randint(1,15))
 

憧憬

职业规划

展望未来,我渴望在技术领域实现更深层次的突破与成长。首先,我计划进一步深化对当前专业领域的掌握,不断跟进最新的技术动态,确保自己始终处于行业前沿。同时,我也希望能够涉足更多相关领域,拓宽技术视野,实现跨领域的融合与创新。

在职业路径上,我期望能够逐步从一名技术实践者成长为技术领导者,带领团队攻克更多技术难题,推动项目落地,实现业务价值的最大化。此外,我还希望能够有机会参与更多开源项目,与全球的开发者共同协作,为技术的开放与共享贡献自己的力量。

创作规划

在CSDN的创作之旅中,我深刻体会到了分享与交流的乐趣与价值。因此,我计划在未来的日子里,继续坚持创作,不断提升文章的质量与深度。我将更加注重实战经验的总结与分享,通过案例解析、技术解析等形式,为读者提供更具实用性和启发性的内容。

同时,我也希望能够尝试更多样化的创作形式,如视频教程、直播分享等,以满足不同读者的需求。此外,我还计划建立自己的技术专栏,围绕特定主题进行系列化创作,形成更为系统、全面的知识体系,为技术爱好者提供更丰富的学习资源。

在创作的道路上,我将始终保持谦逊与开放的心态,积极接受读者的反馈与建议,不断优化自己的创作风格与内容。我相信,通过持续的努力与探索,我能够在CSDN这片知识的沃土上,留下更多有价值的足迹。

相关推荐
Clockwiseee1 小时前
文件上传总结
运维·服务器·学习·文件上传
机器人之树小风1 小时前
KUKA机器人安装包选项KUKA.PLC mxAutomation软件
经验分享·科技·机器人
苜柠1 小时前
Wpf学习片段
学习
欢乐熊嵌入式编程2 小时前
智能手表固件升级 OTA 策略文档初稿
嵌入式硬件·学习·智能手表
起床学FPGA2 小时前
异步FIFO的学习
学习·fpga开发
【云轩】2 小时前
电机密集型工厂环境下的无线通信技术选型与优化策略
经验分享·嵌入式硬件
依年南台2 小时前
搭建大数据学习的平台
大数据·学习
小虎卫远程打卡app3 小时前
视频编解码学习10之成像技术原理
学习·计算机视觉·视频编解码
X Y O4 小时前
神经网络初步学习——感知机
人工智能·神经网络·学习·感知机
小王努力学编程4 小时前
高并发内存池(三):TLS无锁访问以及Central Cache结构设计
jvm·数据结构·c++·学习