距离上次发文已经十个多月了

你有多久没有写日志了?我距离上个发文,已经有十个多月了。俗话说,好记忆不如烂笔头,写写学习日志还是非常有必要的。人的兴趣是不断转换跳跃的,不管怎么转,记录一下自己的学习轨迹还是很有必要的吧,不然,感觉是不是白活了?

一直没写,也是因为,好久没学python了。本来打算一直磕python到死,没想到自己这么快就放弃或者说,暂停学习python了。一切源于好的条件?

盼望已久的新电脑1月10号到货使用,4090呢,那不得赶紧玩一玩。刚好那个时候各种ai大模型图生图啥的大量涌现,各种尝鲜,玩来玩去,最终都只是玩,能有什么收获吗?自己这边怕是啥都没得吧?

下半年开始,觉得是不是应该努力实现做出一个自己的产品出来?思来想去,还是web站点来的容易。还是学习vue吧,毕竟火了这么久了,还是国人产品。光前端框架肯定不行,基于vue的框架nuxt就是比较好的选择了,那就先把nuxt掌握了,有说nuxt参照next做出来的,只要好用,模仿学习就是框架成长的必经之路啊。之前学习过adonisjs的时候,就是因为参照laravel的啊,当时可是把adonisjs的文档翻了好多遍了,的确轻量好用,但之后加入typescript后,就卡住了。

这次学习nuxt后,发现nuxt比之前的adonisjs的确成熟很多,我是说它的成长之路。adonisjs主要靠捐款给坐着,nuxt则在依托强大的vue之上,捆绑了tailwindcss做出了nuxt的专用ui框架,并推出了付费的pro版本,之后又推出了nuxt studio和nuxt hub等产品,尝试各种变现之路进行商业变现,这点比之vue做的还好。一个好的产品,不仅开源免费的部分要有竞争力,它的商业变现也要有竞争力。

希望这次学习能坚持的久一些!!!

### 使用API或爬虫抓取特定微博用户的近期帖子 #### 利用官方API获取数据 对于希望合法并高效地访问微博内容的情况,建议优先考虑使用新浪微博开放平台所提供的官方API接口。这允许开发者基于OAuth认证机制获得授权后读取目标账户公开发布的信息流。通过设置参数如`uid`(用户ID), `since_id`, 和 `max_id` 来限定查询范围至过去三十日内发布的原创微博[^1]。 ```python import requests def fetch_weibo_posts(api_url, access_token, user_id): params = { 'access_token': access_token, 'uid': user_id, 'feature': 1, # 只返回原创微博 'count': 50, # 单次请求最大数量 'trim_user': 1 # 去除冗余的用户资料字段 } response = requests.get(api_url + '/statuses/user_timeline.json', params=params) if response.status_code == 200: return response.json() else: raise Exception('Failed to retrieve data') ``` #### 当无法使用API时采用Web Scraping方法 如果遇到某些限制使得无法利用上述方式,则可以转向构建自定义网页抓取工具作为替代方案。考虑到微博页面加载动态特性以及反爬措施的存在,在此推荐运用Selenium这类支持JavaScript渲染环境下的浏览器自动化框架配合XPath/CSS选择器定位所需元素;同时注意遵循robots.txt协议规定频率控制以免给服务器带来过大负担[^2]. ```python from selenium import webdriver from datetime import timedelta, date import time browser = webdriver.Chrome() def scrape_weibo(user_link, days=30): end_date = (date.today() - timedelta(days)).strftime('%Y-%m-%d') browser.get(f'{user_link}?type=ori&is_ori=1') posts = [] while True: elements = browser.find_elements_by_css_selector('.WB_feed_type.S_bg1') for elem in reversed(elements): post_time = elem.find_element_by_css_selector('.time').text.strip() if "分钟前" not in post_time and "今天" not in post_time \ and any(end_date[:7] in s for s in [post_time]): break content = elem.text.replace('\n',' ').strip() posts.append(content) try: next_button = browser.find_element_by_link_text('下一页') if 'disabled' in next_button.get_attribute('class'): break next_button.click() time.sleep(2) # 防止触发防爬策略 except NoSuchElementException: break return posts ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

andux

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值