需要网页加载了图片后才能通过链接打开爬取怎么解决呢? - V2EX
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 2022-09-05 21:59:50 +08:00 4124 次点击
    这是一个创建于 1139 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    29 条回复    2022-09-10 20:53:36 +08:00
    we21x
        1
    we21x  
       2022-09-05 22:14:18 +08:00
    估计是图片懒加载的问题。img 元素有个 data-src 属性,看看是不是原图的 URL ,如果是取这个属性就行
    sutra
        2
    sutra  
       2022-09-05 22:17:43 +08:00
    打开浏览器的 Developer Tools ,看看 Network ?
    p1956
        3
    p1956  
       2022-09-05 22:26:44 +08:00
    data\-src\=\"(.+?)\"
    bananahotell
        4
    bananahotell  
    OP
       2022-09-05 22:44:35 +08:00
    @we21x 是抓的 data-src 属性,而且这个就是图片的链接,但是无法下载,而且如我所说,即使把这个属性链接直接在浏览器里也无法打开图片,需要打开原图的网页,并在把这个图加载出来之后,才能打开
    bananahotell
        5
    bananahotell  
    OP
       2022-09-05 22:46:51 +08:00
    @sutra 那里面太专业东西的不懂,但是我直接查看网页源码是能看到图片链接的,不是通过 Javascript 加载的。(或者说是其他什么问题?)
    bananahotell
        6
    bananahotell  
    OP
       2022-09-05 22:47:46 +08:00
    @p1956 获取链接的正则?但我的问题不在于没获取到链接
    bananahotell
        7
    bananahotell  
    OP
       2022-09-05 22:52:15 +08:00
    我仔细想了一下,我直接把图片链接复制到浏览器里打不开图片,但不是弹的 404 ,而是提示“access denied 。。。”,估计是网站的设置,防爬取
    foam
        8
    foam  
       2022-09-05 23:13:33 +08:00
    header 带上 referer 就可以了
    referer: https://www.v2ph.com/
    p1956
        9
    p1956  
       2022-09-05 23:30:14 +08:00
    p1956
        10
    p1956  
       2022-09-05 23:39:16 +08:00
    发现有 cf 盾,挺麻烦的
    imicksoft
        11
    imicksoft  
       2022-09-06 00:00:42 +08:00
    量不大就模拟网页浏览采集
    Tink
        12
    Tink  
    PRO
       2022-09-06 00:32:20 +08:00 via Android
    直接模拟网页吧
    bananahotell
        13
    bananahotell  
    OP
       2022-09-06 00:42:31 +08:00 via iPhone
    之前爬过豆瓣,经过这个网站和各位的回复,才发现爬虫还有太多东西,怪不得能写一大本书,最近买了本,慢慢啃了再来研究
    bestmos
        14
    bestmos  
       2022-09-06 02:01:11 +08:00   1
    @bananahotell F12+捕获都不会那建议先学一下计算机网络基础
    ijrou
        15
    ijrou  
       2022-09-06 05:00:28 +08:00
    一想到就是懒加载,,,看来你爬虫的技术不太行啊
    sutra
        16
    sutra  
       2022-09-06 08:05:00 +08:00
    哦,才看到 OP 说是“业余爱好者”。不过像 Developer Tools 里那些基本用法肯定避不开的。
    opengps
        17
    opengps  
       2022-09-06 08:47:05 +08:00
    知道了一个新网站
    tankren
        18
    tankren  
       2022-09-06 08:50:37 +08:00
    谷歌“爬虫 懒加载” 然后抄
    我也是业余的 给单位的计划和财务写了几个小工具 大大减少人工时间 还是挺有成就感的
    fumichael
        19
    fumichael  
       2022-09-06 09:01:22 +08:00
    这些全是图片的网站,一般会做防盗链处理,图片请求空 referer 是不会返回,可以看看请求 header 中是否有携带 referer
    vite
        20
    vite  
       2022-09-06 09:12:54 +08:00
    戳开看了下,不单是 lazyload 和 referer 的问题,有 cloudflare 防护,新手建议还是换个站上手吧...
    fbichijing
        21
    fbichijing  
       2022-09-06 09:32:07 +08:00
    刚试了一下,图片链接的话 data-src ,爬取的时候加个 referer 就不会 403
    codingBug
        22
    codingBug  
       2022-09-06 10:05:13 +08:00
    有时间,我也爬一爬
    zoofy
        23
    zoofy  
       2022-09-06 11:43:59 +08:00
    加 referer headers 就解决了
    bananahotell
        24
    bananahotell  
    OP
       2022-09-07 20:05:09 +08:00
    @foam
    @fumichael
    @fbichijing
    @zoofy 果然,加个 referer 解决问题,感谢各位
    bananahotell
        25
    bananahotell  
    OP
       2022-09-07 20:23:38 +08:00
    不对,乌龙了,加了 referer 也不行
    Dart
        26
    Dart  
       2022-09-09 03:10:57 +08:00
    楼主怎么样了,我也在抓 v2ph , 能交流下吗?
    Dart
        27
    Dart  
       2022-09-09 17:21:06 +08:00
    bananahotell
        28
    bananahotell  
    OP
       2022-09-09 18:56:20 +08:00
    @Dart 没成功,我准备把崔庆才写的那本网络爬虫书看了再来
    Joeith
        29
    Joeith  
       2022-09-10 20:53:36 +08:00
    直接用 puppeteer 解决一切问题。 反正小项目,不用考虑效率的问题。用时效换安全
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2498 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 05:45 PVG 13:45 LAX 22:45 JFK 01:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86