• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lufeng666
V2EX  ›  程序员

请教一个爬虫技术

  •  
  •   lufeng666 · Apr 25, 2023 · 3831 views
    This topic created in 1298 days ago, the information mentioned may be changed or developed.

    有个需求:想要根据用户给的网址链接,爬取链接内容里的所有图片、视频。如果是用后端服务端的话,高迸发情况下肯定有性能问题,后端渲染页面也很慢,得渲染完毕才能返回结果。 我有个想法:因为是移动客户端,我可不可以调用移动端的 webview 组件,在前端加载完毕页面后,直接前端用正则找图片、视频地址?或者有没有一些三方插件可以跟 chrome 的 F12 开发者模式一样,列出所有的网络请求文件,我只需要过滤展示图片、视频类型的请求就行了。 结果:我 github 上翻阅也没找好用的项目,有啥好用的方案可以获取网址对应的图片、视频没?或者实现类似功能的开源项目也可以。 最后:最近 chatgpt 很火,能通过 chatgpt 实现吗?没有研究过不知道是否可行。

    17 replies  •  2023-04-26 15:19:42 +08:00
    IvanLi127
    IvanLi127
    Apr 25, 2023 via Android
    1
    就一个页面?这也不用爬呀,在 webview 里加载完后直接把 img 和 video 内容存下来。demo 版本就有了
    lufeng666
    lufeng666
    OP
    Apr 25, 2023
    2
    @IvanLi127 提取估计比较难搞,正则匹配不好做。
    gzlock
    gzlock
    Apr 25, 2023
    3
    这需求不就是在找 puppeteer 么
    kingfalse
    kingfalse
    Apr 25, 2023 via Android❤️1
    4
    jxbrowser ,Java 接入 chrome 浏览器,有网络接口,每次请求的地址,请求头,返回头,返回体都可以得到,完美解决你的需求
    em70
    em70
    Apr 25, 2023
    5
    1.不要老想走捷径,其实更浪费时间.
    2.首先分析页面是否是动态加载的,HTML 能否拿到全部图片,视频地址.
    3.如果拿不到服务器走无头浏览器,监听日志拿到文件地址,解决问题是第一步,不考虑并发,性能后面再优化
    4.chatgpt 可以帮你分析监听日志,但容量只有 4K,大量分析成本太高,这种简单分析不值得
    4BVL25L90W260T9U
    4BVL25L90W260T9U
    Apr 25, 2023❤️1
    6
    你这口音有点重啊……高迸发😂
    IvanLi127
    IvanLi127
    Apr 25, 2023
    7
    @lufeng666 欸,我想得太简单了?

    https://imgur.com/a/wlFNCp9
    XxxxD
    XxxxD
    Apr 25, 2023
    8
    不是很懂,页面如果有图片或者视频地址,不是可以解析地址下载么?
    如果是动态加载,那就找规律找到正确的地址,实在不行就上无头浏览器了

    另外你说的那个监听的,是不是指 fiddler 这种?
    xchaoinfo
    xchaoinfo
    Apr 25, 2023 via Android
    9
    mitmproxy
    duan602728596
    duan602728596
    Apr 25, 2023
    10
    前端 request 返回 html ,拿 new DOMParser().parseFromString('<div></div>', 'text/html')原生 js 解析
    后端 request 返回 html ,拿 jsdom 解析,api 和 DOM api 几乎差不多
    想用 playwight 拦截静态资源也不是不可以,就是费流量
    NoOneNoBody
    NoOneNoBody
    Apr 25, 2023
    11
    整段话看下来,OP 应该不怎么了解爬虫现状
    感觉在描述 html4+css2 时代的网页

    1. 现在的网站是能检测适应移动端和桌面端的,移动端 webview 比桌面端更难抓包
    2. 桌面端也有“webview”,你搜搜 cef
    3. 现在视频站基本都是流播放,抓 url 只是个“入口”,人家又不是傻子,肯定有大量鉴权,不然任何人随便 copy 个网址,贴到自己的网站就能盗链视频了?
    4. 没有好用的项目是因为发布方在不断变换,例如 google 图片搜索,不久就变化一次,爬虫代码就要重新分析一次,项目如果不能及时跟进更新,过没多久就废了,没人用了
    5. 其他反爬技术我就不说了
    awsl2333
    awsl2333
    Apr 25, 2023
    12
    @gzlock 来用 playwright ,我是 playwright 布道师
    gzlock
    gzlock
    Apr 26, 2023❤️1
    13
    @liuhai233 #12 可惜了 dart 上只有 puppeteer 的 package ,没有 playwright
    Finnn
    Finnn
    Apr 26, 2023
    14
    如果有 puppeteer 不能解决的爬虫需求, 那就是不现实的需求
    xslong
    xslong
    Apr 26, 2023
    15
    现在的网页基本都是动态渲染的,如果没办法直接破解接口可以用 selenium 控制渲染网页,页面都渲染完成后再解析 DOM 提取想到的信息。应该可以设置一些头信息模拟为 webview ,没实际操作过
    fcmio
    fcmio
    Apr 26, 2023
    16
    单一页面还是好多种页面啊,单一页面就好办了试一下就好,几种方案试一下,能提取地址的话我觉得还是提取地址比较方便。。我做过每次发过来页面都不太一样的做的头都大了。
    Yeen
    Yeen
    Apr 26, 2023
    17
    终极解决方案:无头浏览器抓取方案
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1117 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 18:27 · PVG 02:27 · LAX 10:27 · JFK 13:27
    ♥ Do have faith in what you're doing.