为什么我工作以后很少写博客
上学的时候,很多东西不懂,掌握了一些东西就忍不住写篇博客或者发个朋友圈。收获到几个同学的 like 就很高兴。
自2017.6 毕业至今已经6年了,基本上没写过什么博客。即便是写,那最多也只能称之为笔记。
工作以来学到的东西远远多于在学校里的。代码规范、单元测试、持续集成、项目管理、团队合作 很多很多。
我也想成为业内鸟哥、阮一峰那种高知名度的人。只是在庸庸碌碌的工作中心已经逐渐麻木。
工作很累,生活很难。我常常感觉一天中最惬意的就是下午那顿饭。吃完以后可以发发呆,随意网上冲浪。
我有一个朋友叫做 Ralf 大学时经常在博客里更新一些新奇的玩意。偶尔线下分享无不快哉。他小我两届,在今年与他吃饭的时候,我从他的目光和话语中读到了沉沉的疲惫。
上班,睡觉,刷抖音。这似乎成为现在很多人的日常。我们沉浸在手机的时间越来越长。买了一些书也总是不想看,看电影觉得累,只有躺在床上刷抖音才觉得舒服一点。
我还是喜欢常常跟朋友们聚在一起分享技术,聊聊八卦。
便从今天开始吧,从恢复写博客开始。
如果没有一个强有力且持续驱动的项目,人很难去掌握新语言或技术。golang 如此 django 如此 python async 也是如此。
今天写了几行搜索爬虫,感觉颇为有趣,贴在这里吧
import argparse import aiohttp from bs4 import BeautifulSoup import asyncio async def fetch_html(url: str, session: aiohttp.ClientSession, **kwargs) -> str: headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/91.0.4472.124 Safari/537.36" } resp = await session.request(method="GET", url=url, headers=headers, **kwargs) resp.raise_for_status() html = await resp.text() return html async def get_google_results(query: str, max_results: int) -> None: async with aiohttp.ClientSession() as session: num_pages = (max_results + 9) // 10 next_seq_num = 1 # Start with sequence number 1 for page in range(num_pages): start = page * 10 url = f"https://www.google.com/search?q={query}&start={start}" html = await fetch_html(url, session) next_seq_num = parse_google_results(html, next_seq_num) def parse_google_results(html: str, start_num: int) -> int: soup = BeautifulSoup(html, 'html.parser') search_results = soup.find_all('div', class_='tF2Cxc') for idx, result in enumerate(search_results, start=start_num): title = result.find('h3', class_='LC20lb').get_text() url = result.find('a')['href'] print(f"{idx}. {title} {url}") return idx + 1 # Return the next sequence number for subsequent pages def main(): parser = argparse.ArgumentParser(description="Capture search results from Google.") parser.add_argument("query", type=str, help="Search query for Google.") parser.add_argument("-M", "--max_results", type=int, default=10, help="Maximum number of search results to capture. Default is 10.") args = parser.parse_args() asyncio.run(get_google_results(args.query, args.max_results)) if __name__ == "__main__": main()