V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
bananahotell
V2EX  ›  Python

需要网页加载了图片后才能通过链接打开爬取怎么解决呢?

  •  
  •   bananahotell · 156 天前 · 2339 次点击
    这是一个创建于 156 天前的主题,其中的信息可能已经有所发展或是发生改变。

    业余爱好者,学 python 爬图片,看到美女图片网站 v2ph.com 练练手,但发现爬下来的图片很小、没内容,但是链接又是对的,最后才发现,即使把链接复制到浏览器里也无法打开,而是要打开原网页,一直下拉,把图片都加载出来了之后,才能通过链接打开图片。 所以,请教各位大佬,这样的情况怎么解决?

    29 条回复    2022-09-10 20:53:36 +08:00
    we21x
        1
    we21x  
       156 天前
    估计是图片懒加载的问题。img 元素有个 data-src 属性,看看是不是原图的 URL ,如果是取这个属性就行
    sutra
        2
    sutra  
       156 天前
    打开浏览器的 Developer Tools ,看看 Network ?
    p1956
        3
    p1956  
       156 天前
    data\-src\=\"(.+?)\"
    bananahotell
        4
    bananahotell  
    OP
       156 天前
    @we21x 是抓的 data-src 属性,而且这个就是图片的链接,但是无法下载,而且如我所说,即使把这个属性链接直接在浏览器里也无法打开图片,需要打开原图的网页,并在把这个图加载出来之后,才能打开
    bananahotell
        5
    bananahotell  
    OP
       156 天前
    @sutra 那里面太专业东西的不懂,但是我直接查看网页源码是能看到图片链接的,不是通过 JavaScript 加载的。(或者说是其他什么问题?)
    bananahotell
        6
    bananahotell  
    OP
       156 天前
    @p1956 获取链接的正则?但我的问题不在于没获取到链接
    bananahotell
        7
    bananahotell  
    OP
       156 天前
    我仔细想了一下,我直接把图片链接复制到浏览器里打不开图片,但不是弹的 404 ,而是提示“access denied 。。。”,估计是网站的设置,防爬取
    foam
        8
    foam  
       156 天前
    header 带上 referer 就可以了
    referer: https://www.v2ph.com/
    p1956
        9
    p1956  
       156 天前
    p1956
        10
    p1956  
       156 天前
    发现有 cf 盾,挺麻烦的
    imicksoft
        11
    imicksoft  
       156 天前
    量不大就模拟网页浏览采集
    Tink
        12
    Tink  
       156 天前 via Android
    直接模拟网页吧
    bananahotell
        13
    bananahotell  
    OP
       156 天前 via iPhone
    之前爬过豆瓣,经过这个网站和各位的回复,才发现爬虫还有太多东西,怪不得能写一大本书,最近买了本,慢慢啃了再来研究
    bestmos
        14
    bestmos  
       156 天前   ❤️ 1
    @bananahotell F12+捕获都不会那建议先学一下计算机网络基础
    ijrou
        15
    ijrou  
       156 天前
    一想到就是懒加载,,,看来你爬虫的技术不太行啊
    sutra
        16
    sutra  
       156 天前
    哦,才看到 OP 说是“业余爱好者”。不过像 Developer Tools 里那些基本用法肯定避不开的。
    opengps
        17
    opengps  
       156 天前
    知道了一个新网站
    tankren
        18
    tankren  
       156 天前
    谷歌“爬虫 懒加载” 然后抄
    我也是业余的 给单位的计划和财务写了几个小工具 大大减少人工时间 还是挺有成就感的
    fumichael
        19
    fumichael  
       156 天前
    这些全是图片的网站,一般会做防盗链处理,图片请求空 referer 是不会返回,可以看看请求 header 中是否有携带 referer
    vite
        20
    vite  
       156 天前
    戳开看了下,不单是 lazyload 和 referer 的问题,有 cloudflare 防护,新手建议还是换个站上手吧...
    fbichijing
        21
    fbichijing  
       156 天前
    刚试了一下,图片链接的话 data-src ,爬取的时候加个 referer 就不会 403
    codingBug
        22
    codingBug  
       156 天前
    有时间,我也爬一爬
    zoofy
        23
    zoofy  
       155 天前
    加 referer headers 就解决了
    bananahotell
        24
    bananahotell  
    OP
       154 天前
    @foam
    @fumichael
    @fbichijing
    @zoofy 果然,加个 referer 解决问题,感谢各位
    bananahotell
        25
    bananahotell  
    OP
       154 天前
    不对,乌龙了,加了 referer 也不行
    Dart
        26
    Dart  
       153 天前
    楼主怎么样了,我也在抓 v2ph , 能交流下吗?
    Dart
        27
    Dart  
       152 天前
    bananahotell
        28
    bananahotell  
    OP
       152 天前
    @Dart 没成功,我准备把崔庆才写的那本网络爬虫书看了再来
    Joeith
        29
    Joeith  
       151 天前
    直接用 puppeteer 解决一切问题。 反正小项目,不用考虑效率的问题。用时效换安全
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   5180 人在线   最高记录 5556   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 02:46 · PVG 10:46 · LAX 18:46 · JFK 21:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.