通过https://www.zhihu.com/billboard,爬取页面html解析数据,查不到跳转链接怎么搞?
const getReactInstance = (dom,prefix) => {
if (!dom) {
return;
}
const __reactKey = Object.keys(dom || {}).filter(key => key.startsWith(prefix))?.[0];
if (__reactKey && __reactKey in dom) {
return dom[__reactKey];
}
}
const reactInstance = getReactInstance(document.querySelectorAll('.HotList-item')[0], '__reactFiber$')
reactInstance.return.memoizedProps.item.target.link.url
10 回答10.3k 阅读
15 回答7.8k 阅读
3 回答11.3k 阅读✓ 已解决
2 回答11.3k 阅读✓ 已解决
5 回答4.2k 阅读✓ 已解决
2 回答11.1k 阅读✓ 已解决
2 回答8k 阅读✓ 已解决
已解决,使用base64编码转换,获取文章ID

主要实现如下:
很多网站都有反爬虫,所以使用puppeteer来爬取数据,我使用的是Nest.js。
例如掘金热搜如何获取,其他的都类似。
控制器
hot.controller.ts
服务
hot.service
基本上就是这样实现,后面可以继续优化,可以执行定时任务获取,每次掉接口直接查询缓存数据接可以了。puppeteer这块也是可以优化的,创建浏览器池,配置pm2、负载均衡、分配cpu等