今日目标如题,爬取百度的图片,高清原图,而不是缩略图:https://image.baidu.com/

百度图片网站的坑比较多,可能大多数人一看网站发现是动态时就会立马去Network里面找数据了,然后发现里面存的都是缩略图,怎么办?进JS找,然后断点调试等等。。。 这是确实是个办法,但对于我们这种不懂JS的小白根本就不懂呀! 那还有没有其他办法呢? 当然是有的,今天我会分享其中一个稍微简单点的办法,加上我前两篇写的跟今天写的如果都学会的话,基本90%的图片都能顺利扒下来,剩下的10%就是那些需要登录和VIP了。

好,话不多说,直接开搞(上图):


不知道大伙有没有发现两张哪里不一样呢?

是的,网址不一样,第一张图片的网址一眼看不到边,第二张图片的网址则是比较正常的网址长度,但是呈现出来的内容确实一模一样的----由此便可以看出:第一张图片的网址加了很多不必要的东西,而这些东西对用户是没有影响的,是给爬虫增加爬取难度的。

既然看到不同了,那要怎么知道哪些是可以用的,哪些是不可以用的呢?


看图,框框里面的东西很明显是没有什么用的,既然没用就可以去掉,同理,可以一步一步去掉无用的,剩下的就是我们要找的真正的网址。

既然网址找到了,那么如何找到图片呢,我们打开网页源代码,发现都是JS代码,怎么搞?JS咱没玩过啊。
其实这也是百度搞的一个坑,我们需要的图片链接就在网页源代码里面,那么要如何找到我们需要的东西呢?很简单,看图片的格式,然后去网页源代码里面找就可以了


同一张图片,里面有蛮多size,选择你想要的就可以了,我选择的是原图

既然图片链接找到了,那就代表网站分析完毕,直接上代码就行了:

import re
import requestsurl = 'https://image.baidu.com/search/index?tn=baiduimage&ipn=r&word=高清壁纸&pn=0'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3760.400 QQBrowser/10.5.4083.400',
}res = requests.get(url,headers=headers).text
for img in re.findall('"objURL":"(.*?)",',res):print(img)
output:
http://img.pconline.com.cn/images/upload/upc/tx/wallpaper/1306/21/c1/22386490_1371808534385.jpg
http://b-ssl.duitang.com/uploads/item/201312/27/20131227233312_feEjH.jpeg
http://up.enterdesk.com/edpic/8c/d2/d9/8cd2d9421559855d153e872faf514137.jpg
http://01.minipic.eastday.com/20171011/20171011095832_49d23dd458b7446249d84fda3d4ea1c1_2.jpeg
http://up.enterdesk.com/edpic/f1/63/4d/f1634dc19bcaae62e769b3d9315cf194.jpg
http://a.hiphotos.baidu.com/zhidao/pic/item/e824b899a9014c08be3151a4087b02087bf4f4ad.jpg
http://up.enterdesk.com/edpic/2d/a3/18/2da318335152ebe82061e55afa883be5.jpg
http://up.enterdesk.com/edpic/58/bf/e9/58bfe913ea48cdb2b4174432cd103583.jpg
http://b.hiphotos.baidu.com/zhidao/pic/item/63d0f703918fa0ece9221cfe279759ee3c6ddb58.jpg
http://b.zol-img.com.cn/desk/bizhi/start/3/1379385428221.jpg
...

因为位置的特殊性,只好使用re正则表达式,轻松匹配到图片链接。

这里有个小问题,百度图片有很多格式的,jpg,jpeg,png等等,所以为了更加完善点,咱们使用os模块匹配图片后缀,全部代码:

import re
import requests
import os def get_url(word):url = f'https://image.baidu.com/search/index?tn=baiduimage&ipn=r&word={word}&pn=0'# pn代表翻页,每30张图片为1页  0   30   60   90 ....headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3760.400 QQBrowser/10.5.4083.400',}res = requests.get(url,headers=headers).textfor img in re.findall('"objURL":"(.*?)",',res):print(img)   image = requests.get(img,headers=headers)file_name = img.split("/")[-1]   #使用图片链接后缀作为图片名称with open("./images/"+str(file_name),"wb") as f:f.write(image.content)if __name__ == "__main__":word = input("请输入您要采集的图片名称:")get_url(word)



搞定!有啥不理解的可以在下方留言!大家伙一起交流交流!!

Python爬取百度图片(高清原图)相关推荐

  1. Python3.8抓取百度图片高清原图『原来如此简单』『最新记录贴』

    网上爬取百度图片的五花八门,要么有的过时的,有的则是爬取的是缩略图,不是原图等. 鉴于此在学习的过程中,记录此贴.在写本文的时候,代码是可用的. 前言 1.首先要有第一个明白的地方是百度图片目前是动态 ...

  2. python 爬取王者荣耀高清壁纸

    代码地址如下: http://www.demodashi.com/demo/13104.html 一.前言 打过王者的童鞋一般都会喜欢里边设计出来的英雄吧,特别想把王者荣耀的英雄的高清图片当成电脑桌面 ...

  3. Python 爬取百度图片的高清原图

    # coding=utf-8 """ 爬取百度图片的高清原图 Author : MirrorMan Created : 2017-11-10 ""&q ...

  4. 如何使用python爬取百度图片_python实现爬取百度图片的方法示例

    本文实例讲述了python实现爬取百度图片的方法.分享给大家供大家参考,具体如下: import json import itertools import urllib import requests ...

  5. Python爬取百度图片搜索结果

    爬取百度图片搜索的图片,我们先需要分析其访问 URL,我们在搜索页面,比如搜索 "abc" ,打开 F12 调试,下拉结果页面页,查看网络请求,在其中我们可以找到这样一个请求 ht ...

  6. python爬取百度图片(用于深度学习中数据集的收集)

    6_python爬取百度图片(用于深度学习中数据集的收集)(6-20181225-) 参考: https://blog.csdn.net/guyuealian/article/details/7873 ...

  7. python爬取某网站高清二次元图片 自动下载

    第一章 Python 爬取网站信息 文章目录 一,什么是爬虫? 二.使用步骤 1.引入库 2.伪装header 3.读取信息并过滤,写入文件 总结 前言 本文只做技术讨论,大家不要一直爬这个小网站,记 ...

  8. Python爬虫实战| Python爬取英雄联盟高清壁纸

    先看一下最终爬取的效果,每个英雄的壁纸都被爬取下来了: "黑暗之女 安妮"的12张壁纸: 高清大图: 下面开始正式教学! 版本:Python 3.5 工具:Jupyter note ...

  9. 还愁没壁纸?Python爬取5K分辨率高清桌面壁纸

    2019独角兽企业重金招聘Python工程师标准>>> 前言 相信大家都很需要哪些既好看又能符合自己当时的心情的高清壁纸,很多时候壁纸反应我们当时的心情,一张好的壁纸就一道靓丽的风景 ...

  10. python爬取王者荣耀高清图

    原理请看:Python?30行代码?爬取王者荣耀所有英雄皮肤图片?_易果啥笔的博客-CSDN博客 我稍微改了一下:因为王者这个herolist.json文件里的信息更新的不太及时,导致爬取出来的皮肤有 ...

最新文章

  1. 微软资深算法工程师为AI初学者量身打造的机器学习入门书上市啦!
  2. java futuretask 实例_java 使用Callable+FutureTask获取执行结果
  3. 【HANA系列】SAP HANA SQL获取当前日期最后一天
  4. 我如何知道Bash脚本中的脚本文件名?
  5. go语言mysql框架_开源轻量级数据库访问框架-Go语言中文社区
  6. wps linux版本支持vba,Wps vba安装包
  7. java 下载junit的jar包_junit jar包下载-Junit4 jar包下载 --pc6下载站
  8. 做个简单的Java学生考勤系统06--签到功能完善
  9. html模板原型,政务管理系统原型模板分享
  10. Busboy 上传文件到指定目录,并重命名,node.js
  11. Unity 获取 两个点的中心点
  12. 记一次eduSRC挖掘
  13. [唐诗]寻西山隐者不遇-丘为
  14. 数据分析---众包任务
  15. 【赛后诸葛】2020 力扣杯!Code Your Future 春季全国编程大赛
  16. Bootstrap框架有什么优势?
  17. 《构建之法》作业:口算出题器
  18. 获取时间/时间戳,并比大小
  19. 中安威士大数据脱敏解决方案
  20. Android中导航栏之搜索框SearchView

热门文章

  1. 《智慧城市》顶层设计解读
  2. kitti点云地图拼接
  3. psn账号修改地址可以转服务器,PSN换卡换服换账户教程
  4. 朝花夕拾-不务正业的大学生做了什么比赛?
  5. coverity静态安全扫描分析软件linux环境搭建
  6. matlab一键计算平均值与标准偏差
  7. visio中公式太小_多元醇羟值、羟基含量与分子量之间的关系及计算公式
  8. python计算器算法_Python数学运算入门把Python当作计算器
  9. Exploring Plain Vision Transformer Backbones for Object Detection.
  10. 新内容创业时代,微博的造“星”哲学