為什么我工作以后很少寫博客
上學的時候,很多東西不懂,掌握了一些東西就忍不住寫篇博客或者發個朋友圈。收獲到幾個同學的 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()

浙公網安備 33010602011771號