为什么我工作以后很少写博客

发布时间 2023-09-06 00:22:05作者: SurfUniverse

上学的时候,很多东西不懂,掌握了一些东西就忍不住写篇博客或者发个朋友圈。收获到几个同学的 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()