准备工作

我们这里用的是Uc浏览器,用百度搜索 ’火影忍者壁纸‘
这里我们的网址是http://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gb18030&word=%BB%F0%D3%B0%C8%CC%D5%DF%B1%DA%D6%BD&fr=ala&ala=1&pos=0&alatpl=wallpaper&oriquery=%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85%E5%A3%81%E7%BA%B8
这里我们往下拉的时候是会有很多的图片
可以将网址中的index替换为flip。这样的话我们就把网页换成了这样

替换后的网址
http://image.baidu.com/search/flip?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gb18030&word=%BB%F0%D3%B0%C8%CC%D5%DF%B1%DA%D6%BD&fr=ala&ala=1&pos=0&alatpl=wallpaper&oriquery=%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85%E5%A3%81%E7%BA%B8分成这样一页一页的作用往后就知道啦 = =

爬取一张图片看看效果:

import os
import requests
url = "http://resource.58game.com/uploads/content/20170117/587d7c026f70e.jpg"
r = requests.get(url)     #  对于这个url我们先不要着急怎么出来
filename = "./output/1.jpg"    #   这个文件夹会产生在根目录下,爬取了一张图片
if not os.path.exists("output"):  os.makedirs("output")
with open(filename,'wb')as f:f.write(r.content)            #  图片写入

那么刚刚这个url怎么得到的呢?
我们打开这个替换后的网址Ctrl+U 查看网页源代码,搜索 ‘.jpg’
发现:相同的网址前边是不一样,那么哪个才是我们需要的呢?
这里我们可以选择其中一个看看能不能下载下来 上边例子选择的是 “objURL” 这个下的网址 经过刚才 验证正确
那么我们怎么找到所有的"objURL"呢?
我们可以用bs4,xpath,re等等 这里我们用re来选取

一页的图片url我么已经拿到手了
怎么搞到好几页的呢?我们依次打开第2,3,4页 看看有没有什么规律
第一页:http://image.baidu.com/search/flip?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gb18030&word=%BB%F0%D3%B0%C8%CC%D5%DF%B1%DA%D6%BD&fr=ala&ala=1&pos=0&alatpl=wallpaper&oriquery=%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85%E5%A3%81%E7%BA%B8
第二页:http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85%E5%A3%81%E7%BA%B8&pn=20&gsm=&ct=&ic=0&lm=-1&width=0&height=0
第三页:http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85%E5%A3%81%E7%BA%B8&pn=40&gsm=&ct=&ic=0&lm=-1&width=0&height=0
第四页:http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85%E5%A3%81%E7%BA%B8&pn=60&gsm=&ct=&ic=0&lm=-1&width=0&height=0
通过对比我们发现第二页pn=20, 第三页pn=40. 好了 规律我们也拿到了
很多时候会爬取失败 我们可以看看他的头文件 将其偷偷换掉,让他以为我们是一个浏览器。

这里用"middleURL"中的网址

import re
import os
import requests
import uuid
def fetchImage():
local_dir = check_local_dir()for i in range(1,3):url = "http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85%E5%A3%81%E7%BA%B8&pn={}&gsm=&ct=&ic=0&lm=-1&width=0&height=0".format(20*i)kv = {"user-agent": "Mizilla/5.0"}r = requests.get(url, headers=kv)rt = r.textresult = re.findall('"middleURL":"(.*?)",', rt)for remote_image_url in result:file_patterm = remote_image_url[-3:]print(remote_image_url)filename = local_dir + '\{}.{}'.format(uuid.uuid4(), file_patterm)image_local(remote_image_url, filename
def check_local_dir():BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))aim_path = os.path.join(BASE_DIR, 'OutputTupian')if not os.path.exists(aim_path):os.makedirs(aim_path)return aim_pathdef image_local(url,filename):try:request_header = {  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36',"referer":"https://image.baidu.com"}image = requests.get(url,headers=request_header)with open(filename, 'wb') as f:f.write(image.content)f.close()print('url 为 {} 的图片下载完成'.format(filename))return Trueexcept Exception as e:print(e)return Falsereturn Trueif __name__ == '__main__':fetchImage()

完成了有点小问题代码是一行一行复制的
谢谢浏览~~

入门百度图片爬取-----火影忍者壁纸爬取相关推荐

  1. python爬虫爬取百度图片总结_爬虫篇| 爬取百度图片(一)

    什么是爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模 ...

  2. python如何爬取图片_百度图片爬虫-python版-如何爬取百度图片?

    上一篇我写了如何爬取百度网盘的爬虫,在这里还是重温一下,把链接附上: http://5912119.blog.51cto.com/5902119/1771391 这一篇我想写写如何爬取百度图片的爬虫, ...

  3. python爬取百度图片——翻页式网站爬取

    小编大约于这个月月初写的这一份代码,但很不幸,大概20号,再次找百度图片翻页流的时候,发现是瀑布流且回不去了,还好代码里面留了翻页流的网址 所以,现在来分享给大家. 语言:python3.6 库:re ...

  4. 彭于晏百度图片Ajax异步加载爬取

    Ajax 异步加载 网页爬取 分析网页 在Networka条目里找xhr Ajax 加载 import requests from urllib.parse import urlencode impo ...

  5. 如何使用python爬取百度图片_【Python】爬取百度图片进行人脸识别

    importos,cv2,requests,json,re,timeimporttensorflow as tffrom bs4 importBeautifulSoupdefcheck_path(pa ...

  6. 爬取wallheaven壁纸

    爬取wallheaven壁纸 爬取的网址为 https://wallhaven.cc/toplist 爬取流程: 在首页中F12检查html 在详情页中检查html 编码 # -- coding:UT ...

  7. 如何用爬虫爬图,以百度图片为例

    如何用爬虫爬图,以百度图片为例 关于爬虫爬图 如何获取网页源代码 源代码 关于爬虫爬图 最近自己看着网上教程学习如何爬图,发现爬虫的优越性,也发现有些博客对初学者不太友好,因此写了这篇博客. 如何获取 ...

  8. 如何利用百度图片搜索进行引流?原理是怎样的?

    究竟百度图片搜索如何运作?其实它的运作原理与搜索引擎很类似,一样会经过以下三个步骤: 爬取 Crawling 索引 Indexing 排序 Ranking 百度图片蜘蛛会先去爬取网络上各个网站的图片, ...

  9. 二、入门爬虫,爬取百度图片

    什么是爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模 ...

最新文章

  1. 为什么单片机程序中会有延时程序加入
  2. brew 安装PHP的配置文件所在位置
  3. 华为三层交换机路由配置案例_{华为HCNP-RS}三层交换机的配置实例
  4. SpringBoot整合oss实现文件的上传,查看,删除,下载
  5. DWZ富客户端框架设计思路与学习建议
  6. Oracle毙掉JavaOne
  7. HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容
  8. ifconfig输出网口和ip
  9. [Avalon]如何实现自定义MarkupExtension.
  10. [导入]Nebula3学习笔记(6): IO实战, ZIP解压缩程序
  11. The NVIDIA driver on your system is too old (found version 9000).
  12. Kafka权威指南总结
  13. LabVIEW参考资料汇总
  14. bandizip修改压缩文件内容_BandiZip使用方法,成功压缩解压文件
  15. 关于网页消息提示音问题解决与实现
  16. adc0832工作原理详解_adc0834工作原理及AD转换
  17. 关于对MIDlet套件进行数字签名
  18. 形式语言与自动机 第4章 正规文法和正规集的性质
  19. swoole 2.x使用php什么版本,Think-Swoole 教程(二)安装
  20. Informerd详解(2)与C#百度地图定位显示项目学习

热门文章

  1. 三个变量存在一个协整方程_Johansen结果显示三个协整关系是什么意思呢?
  2. 组播及igmp/mld协议详解(二)
  3. ADS系列 - RLC器件滤波器设计教程1
  4. C# WinForm 编写串口调试助手
  5. FPGA_Verilog学习之旅(4)---基于SPI读取AD7606
  6. linux下4k对齐,linux查看硬盘4K对齐方法
  7. 《外汇市场与交易系统》读书笔记2
  8. 亚马逊上怎么用连连支付结账?
  9. 冒泡数组实现和冒泡数组的改进以及插入法排序
  10. python人脸检测怎么弄_如何通过python实现人脸识别验证