我在深圳南山写代码

(点击上方公众号,可快速关注)

本文来自公众号「养码场」,作者黄晨的投稿


今天想和大家聊一聊深圳。


都说北上广深,程序员的归宿。随着华强北的没落,南山的强势崛起,这里的程序员如何生存?他们又是怎么看待深圳这座城市呢?


640?wx_fmt=jpeg


过去 38 年里,矮屋变高楼、农田变大道、小渔村变大都市。70 万平米的南山科技园,挤下了无数技术人。

 

繁华的深圳,南山区在西南方向一角。由南向北,经过深南大道和大沙河交汇处的沙河大桥,就是进入南山科技园的标志。

 

 

南山上班日常

拥堵更是一种常态


因为公司扎堆,南山科技园的程序员大多住到白石洲、西乡和西丽那边,早上匆忙吃碗肠粉,人就像海水一样涌来,公交车、私家车、共享单车一下子拥挤地泄入科技园上的小路。 


堵车是常态,一般过了西丽,从松坪山开始车流就变得老态、缓慢,欲走还停。好不容易到了办公楼,仍然会遭遇等待的心焦,有时候每层电梯都要停,夏天最是难受。

 

 

工作日的南山像一个高速转轴的机器,带着重重的负荷运行,而周末,又一下子冷清了下来。


但是,城市工作氛围里,要活下去就是要这样,追求高效率。


如果是准备去深圳发展的应届生,那么访问一下政府官网,查看相关福利还是很有必要的,福田等地会有免费的青年驿站,给刚来这个城市无处落脚的人一些关怀。


此外,深圳计算机企业一般会有面试题,水准不一, 多看面经,做好准备同样必要。



是生存而非生活

快一点,再快一点


这里不需要你除了竭尽全力工作外的其他特质,生存的成本督促着代码前的我们,快一点,再快一点……

 

在深圳工作过的程序员有所体会,工作氛围非常紧张。公司的产品要求快产出,工作时间要不能停歇,这座城市似乎没有太大的耐心去“培养”人。


事实上,很多人奔赴这里的目的很简单,为名或为利,所以是生存而不是生活。


生存要考虑的东西就具象多了:房价、物价、工作机会和工资。根据职友集的数据,2017年深圳程序员的平均薪资为8600。事实上,我认为,这个数据还是远远偏低的。


640?wx_fmt=jpeg


南山科技园里,华为、中兴,腾讯、大疆……很多高新企业对技术人有着大量的需求,给出的价格也可观。


工资在涨,生存的成本则在暴涨。


越努力,越幸运,但有些时候努力会变得很徒劳。每个城市都有自己的压力,但看客更为无奈。


2016年11月开始,深圳房价连降20个月,深圳房价雪崩,断崖式暴跌!但仔细一算,房子均价从54986元跌到了54111元,每平米降了875元。最多的一个月,房价一共降了160块钱……


640?wx_fmt=jpeg


“有时候,会怀疑自己是不是选错了,深圳,并没有黄金和机遇,这座城市对于外来程序员毫无优待……”

 


80年代和2018年

创业的热土已经在消散


二十年前的深圳, 那才是遍地黄金,到处是机遇。


1984年,13岁的马化腾随父母从海南岛迁居到了深圳。这年年初,深圳用4年时间的发展和经验证明,建立经济特区的政策是正确的。


整个深圳都在向上,包括这座城市的外来者。

 

那时候,马化腾在窗口眺望时,或许会注意到那座全国有名的“深圳速度”国贸大厦,在几个月里就拔地而起,让人倍感神奇。从深圳大学计算机毕业后,马化腾入职深圳一家公司做软件工程师, 在深圳开始了他的技术路、转型路。他说:这时的深圳是“创业的热土”。 


确实,无数高新企业涌现,无数技术人蜂拥,那时的深圳是“来了就是深圳人”。但现在的深圳,却不是。


深圳的关键词是包容、开放、多元化。但是2018年的深圳,用物价、房价、高速的运作逼退了一些温情,这座步入中年的城市,少了些年少的冲劲和包容,染上了中年的一些脾气和弊病,似乎要泯然于普通的一二线城市。


“在深圳,我没法有归属感。”27岁的林,毕业后来到深圳,3年过去,他依然觉得这座城市没有让他变成“深圳人”,他依然格格不入。



 

没有谁想唱衰这座城市!只是在思考,该拿什么爱它……

 

 

过热之后需要冷却,需要时间让深圳进一步沉淀出大城市的胸怀,让技术人来了,可以成为深圳人。 

 

我在朋友圈里看到一段话:

我是一个工科男,程序猿,浪迹在深圳5年,体验着一线城市的生活,日复一日地写着代码,挣扎着寻求扎根和成功的机会,我也不知道我什么时候就会被打败,被家里催着回了江苏老家,但现在,我还想在这个城市继续奋斗一会……


深圳对于程序员来说究竟是一座什么样的城市?我认为,爱恨交织。有些程序员从上海奔赴,有些从二三线城市赶往,他们渴望在深圳挖到自己的金矿,显然,成功者寡。


有些程序员赶上了好时候,春风吹来,一举立足。但更多程序员还在敲着代码,忙碌地在这座城市行走。


或许曾痛骂过它,或许曾想一走了之,但最后还是选择停留。因为相信深圳是一座公平的城市,尽管不是那么慷慨,但是它愿意并且能够给程序员机会,这就是希望!


“我们想要活得更加有棱有角,在深漂的日子里多一些体面和成长。


你的深漂故事,欢迎分享~





【关于投稿】


如果大家有原创好文投稿,请直接给公号发送留言。


① 留言格式:
【投稿】+《 文章标题》+ 文章链接

② 示例:
【投稿】《不要自称是程序员,我十多年的 IT 职场总结》:http://blog.jobbole.com/94148/


③ 最后请附上您的个人简介哈~



关注「程序员的那些事」,不错过圈内事

640?wx_fmt=png

640?wx_fmt=jpeg

<think>我们之前讨论的是在爬取公司地址后添加打印语句来跟踪进度。现在用户要求提供处理后的完整代码。根据用户之前的描述,我们只需要在每条数据获取后添加print语句,不需要其他复杂功能。 回顾之前的代码,我们主要做了以下工作: 1. 导入必要的库(pandas, selenium, time等) 2. 设置常量(文件路径、列名、延迟时间等) 3. 初始化WebDriver(使用Chrome) 4. 打开启信网并登录(使用cookie) 5. 定义获取地址的函数(get_qixin_address) 6. 读取Excel文件 7. 循环处理每个公司名称,获取地址并存储结果 8. 将结果保存到新的Excel文件 9. 关闭浏览器 现在,我们将在循环处理每个公司名称的部分添加打印语句,按照之前设计的格式。 注意:由于用户没有提供具体的登录方式,我们假设使用cookie登录,并且已经成功登录。另外,代码中需要处理可能出现的异常,以避免程序中断。 完整代码如下:</think>以下是添加了进度跟踪打印功能的完整代码: ```python import pandas as pd from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time import os # 常量设置 EXCEL_PATH = "客户列表.xlsx" # 输入Excel文件路径 SAVE_PATH = "客户地址结果.xlsx" # 输出Excel文件路径 COLUMN_NAME = "客户名称" # 包含公司名称的列名 DELAY = 1.5 # 请求延迟时间(秒) QIXIN_URL = "https://www.qixin.com" # 启信网网址 COOKIE_FILE = "qixin_cookies.txt" # 存储Cookie的文件 def save_cookies(driver): """保存当前会话的Cookie到文件""" cookies = driver.get_cookies() with open(COOKIE_FILE, 'w') as f: f.write(str(cookies)) def load_cookies(driver): """从文件加载Cookie到当前会话""" if os.path.exists(COOKIE_FILE): with open(COOKIE_FILE, 'r') as f: cookies = eval(f.read()) for cookie in cookies: driver.add_cookie(cookie) return True return False def login_qixin(driver): """登录启信网(手动登录后保存Cookie)""" print("正在打开启信网...") driver.get(QIXIN_URL) # 尝试加载已有Cookie if load_cookies(driver): driver.refresh() print("✓ Cookie加载成功") return True # 手动登录流程 print("请手动完成登录操作...") input("登录完成后按Enter键继续 >>> ") # 验证登录状态 try: WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "user-name")) ) save_cookies(driver) print("✓ 登录成功,Cookie已保存") return True except: print("⚠️ 登录状态验证失败,请检查") return False def get_qixin_address(driver, company_name): """获取指定公司的注册地址""" try: # 打开搜索页面 search_url = f"{QIXIN_URL}/search?key={company_name}" driver.get(search_url) # 等待结果加载 WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.CLASS_NAME, "company-item")) ) # 获取第一个结果中的地址信息 first_result = driver.find_element(By.CLASS_NAME, "company-item") address = first_result.find_element(By.CSS_SELECTOR, ".content .row:nth-child(3) .col").text return address except Exception as e: print(f"⚠️ 获取地址时出错: {str(e)}") return "获取失败" # === 主程序 === if __name__ == "__main__": # 初始化浏览器 driver = webdriver.Chrome() driver.maximize_window() # 登录启信网 if not login_qixin(driver): print("程序终止:登录失败") driver.quit() exit(1) try: # 读取Excel文件 df = pd.read_excel(EXCEL_PATH) print(f"✓ 成功读取Excel文件,共发现 {len(df)} 家公司") # 结果列表 results = [] # 处理每个公司名称 total = len(df) for i, company_name in enumerate(df[COLUMN_NAME]): # 进度跟踪 progress = (i+1)/total*100 print(f"\n▶ 开始处理第 {i+1}/{total} 家公司 [{progress:.1f}%]: {company_name}") start_time = time.time() address = get_qixin_address(driver, company_name) elapsed = time.time() - start_time # 完成处理提示 print(f"✓ 完成处理: {company_name}") print(f" 获取地址: {address}") print(f" 耗时: {elapsed:.2f}秒") print("-" * 60) # 分隔线 results.append({"客户名称": company_name, "地址": address}) time.sleep(DELAY) # 避免请求过快 # 保存结果 result_df = pd.DataFrame(results) result_df.to_excel(SAVE_PATH, index=False) print(f"\n✓ 处理完成! 结果已保存至: {SAVE_PATH}") except Exception as e: print(f"⚠️ 程序运行出错: {str(e)}") finally: driver.quit() print("浏览器已关闭") ``` ### 主要功能说明: 1. **进度跟踪系统**: - 显示当前处理的序号和总数(如`第 1/100 家`) - 实时进度百分比显示(如`[25.0%]`) - 每个任务耗时统计(精确到0.01秒) 2. **增强的错误处理**: - 登录状态验证机制 - 地址获取异常捕获 - 主程序异常保护 3. **Cookie管理**: - 自动保存/加载登录会话 - 避免每次手动登录 4. **输出格式优化**: - 清晰的分隔线(`-----`) - 状态符号标识(✓ 成功,⚠️ 警告,▶ 开始) - 缩进格式增强可读性 ### 使用说明: 1. 将客户名单保存在`客户列表.xlsx`中 2. 首次运行会提示手动登录 3. 后续运行自动使用保存的Cookie 4. 结果输出到`客户地址结果.xlsx` ### 示例输出: ``` ✓ 成功读取Excel文件,共发现 100 家公司 ▶ 开始处理第 1/100 家公司 [1.0%]: 阿里巴巴集团 ✓ 完成处理: 阿里巴巴集团 获取地址: 浙江省杭州市余杭区文一西路969号 耗时: 3.21秒 ------------------------------------------------------------ ▶ 开始处理第 2/100 家公司 [2.0%]: 腾讯科技 ✓ 完成处理: 腾讯科技 获取地址: 广东省深圳南山区高新科技园 耗时: 2.87秒 ------------------------------------------------------------ ``` 这个脚本在保证原有功能的基础上,添加了详细的进度跟踪和错误处理机制,便于监控批量处理任务[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值