有个需求:想要根据用户给的网址链接,爬取链接内容里的所有图片、视频。如果是用后端服务端的话,高迸发情况下肯定有性能问题,后端渲染页面也很慢,得渲染完毕才能返回结果。 我有个想法:因为是移动客户端,我可不可以调用移动端的 webview 组件,在前端加载完毕页面后,直接前端用正则找图片、视频地址?或者有没有一些三方插件可以跟 chrome 的 F12 开发者模式一样,列出所有的网络请求文件,我只需要过滤展示图片、视频类型的请求就行了。 结果:我 github 上翻阅也没找好用的项目,有啥好用的方案可以获取网址对应的图片、视频没?或者实现类似功能的开源项目也可以。 最后:最近 chatgpt 很火,能通过 chatgpt 实现吗?没有研究过不知道是否可行。
1
IvanLi127 2023-04-25 20:18:45 +08:00 via Android
就一个页面?这也不用爬呀,在 webview 里加载完后直接把 img 和 video 内容存下来。demo 版本就有了
|
3
gzlock 2023-04-25 21:51:31 +08:00
这需求不就是在找 puppeteer 么
|
4
kingfalse 2023-04-25 21:57:10 +08:00 via Android 1
jxbrowser ,Java 接入 chrome 浏览器,有网络接口,每次请求的地址,请求头,返回头,返回体都可以得到,完美解决你的需求
|
5
em70 2023-04-25 22:03:43 +08:00
1.不要老想走捷径,其实更浪费时间.
2.首先分析页面是否是动态加载的,HTML 能否拿到全部图片,视频地址. 3.如果拿不到服务器走无头浏览器,监听日志拿到文件地址,解决问题是第一步,不考虑并发,性能后面再优化 4.chatgpt 可以帮你分析监听日志,但容量只有 4K,大量分析成本太高,这种简单分析不值得 |
6
ospider 2023-04-25 22:06:47 +08:00 1
你这口音有点重啊……高迸发😂
|
7
IvanLi127 2023-04-25 22:49:19 +08:00
|
8
XxxxD 2023-04-25 23:19:25 +08:00
不是很懂,页面如果有图片或者视频地址,不是可以解析地址下载么?
如果是动态加载,那就找规律找到正确的地址,实在不行就上无头浏览器了 另外你说的那个监听的,是不是指 fiddler 这种? |
9
xchaoinfo 2023-04-25 23:21:29 +08:00 via Android
mitmproxy
|
10
duan602728596 2023-04-25 23:31:17 +08:00
前端 request 返回 html ,拿 new DOMParser().parseFromString('<div></div>', 'text/html')原生 js 解析
后端 request 返回 html ,拿 jsdom 解析,api 和 DOM api 几乎差不多 想用 playwight 拦截静态资源也不是不可以,就是费流量 |
11
NoOneNoBody 2023-04-25 23:35:58 +08:00
整段话看下来,OP 应该不怎么了解爬虫现状
感觉在描述 html4+css2 时代的网页 1. 现在的网站是能检测适应移动端和桌面端的,移动端 webview 比桌面端更难抓包 2. 桌面端也有“webview”,你搜搜 cef 3. 现在视频站基本都是流播放,抓 url 只是个“入口”,人家又不是傻子,肯定有大量鉴权,不然任何人随便 copy 个网址,贴到自己的网站就能盗链视频了? 4. 没有好用的项目是因为发布方在不断变换,例如 google 图片搜索,不久就变化一次,爬虫代码就要重新分析一次,项目如果不能及时跟进更新,过没多久就废了,没人用了 5. 其他反爬技术我就不说了 |
13
gzlock 2023-04-26 02:08:10 +08:00 1
@liuhai233 #12 可惜了 dart 上只有 puppeteer 的 package ,没有 playwright
|
14
Finnn 2023-04-26 10:16:06 +08:00
如果有 puppeteer 不能解决的爬虫需求, 那就是不现实的需求
|
15
xslong 2023-04-26 10:55:19 +08:00
现在的网页基本都是动态渲染的,如果没办法直接破解接口可以用 selenium 控制渲染网页,页面都渲染完成后再解析 DOM 提取想到的信息。应该可以设置一些头信息模拟为 webview ,没实际操作过
|
16
ShuoHui 2023-04-26 11:48:03 +08:00
单一页面还是好多种页面啊,单一页面就好办了试一下就好,几种方案试一下,能提取地址的话我觉得还是提取地址比较方便。。我做过每次发过来页面都不太一样的做的头都大了。
|
17
Yeen 2023-04-26 15:19:42 +08:00
终极解决方案:无头浏览器抓取方案
|