最近几天,研究了一下一直很好奇的爬虫算法。这里写一下最近几天的点点心得。下面进入正文:

你可能需要的工作环境:

Python 3.9官网下载

我们这里以sogou作为爬取的对象。

首先我们进入搜狗图片https://pic.sogou.com/,进入壁纸分类(当然只是个例子Q_Q),因为如果需要爬取某网站资料,那么就要初步的了解它…  
进去后就是这个啦,然后F12进入开发人员选项,笔者用的是Chrome。

右键图片>>检查

发现我们需要的图片src是在img标签下的,于是先试着用 Python 的 requests提取该组件,进而获取imgsrc然后使用urllib.request.urlretrieve逐个下载图片,从而达到批量获取资料的目的,思路好了;

下面应该告诉程序要爬取的urlhttp://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD,此url来自进入分类后的地址栏。明白了url地址我们来开始愉快的代码时间吧:

在写这段爬虫程序的时候,最好要逐步调试,确保我们的每一步操作正确,这也是程序猿应该有的好习惯。下面我们来剖析该url指向的网页。

import requests
import urllib
from bs4 import BeautifulSoup
res = requests.get('http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD')
soup = BeautifulSoup(res.text,'html.parser')
print(soup.select('img'))

output:

发现输出内容并不包含我们要的图片元素,而是只剖析到logoimg,这显然不是我们想要的。也就是说需要的图片资料不在urlhttp://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD里面。

因此考虑可能该元素是动态的,细心的同学可能会发现,当在网页内,向下滑动鼠标滚轮,图片是动态刷新出来的,也就是说,该网页并不是一次加载出全部资源,而是动态加载资源。这也避免了因为网页过于臃肿,而影响加载速度。

下面痛苦的探索开始了,我们是要找到所有图片的真正的url 笔者也是刚刚接触,找这个不是太有经验。最后找的位置F12>>Network>>XHR>>(点击XHR下的文件)>>Preview

发现,有点接近我们需要的元素了,点开all_items 发现下面是0 1 2 3…一个一个的貌似是图片元素。试着打开一个url。发现真的是图片的地址。找到目标之后。点击XHR下的Headers

得到第二行

Request URL:
http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category=%E5%A3%81%E7%BA%B8&tag=%E5%85%A8%E9%83%A8&start=0&len=15&width=1536&height=864,试着去掉一些不必要的部分,技巧就是,删掉可能的部分之后,访问不受影响。

经筛选,最后得到的url:http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category=%E5%A3%81%E7%BA%B8&tag=%E5%85%A8%E9%83%A8&start=0&len=15 字面意思,知道category后面可能为分类。start为开始下标,len为长度,也即图片的数量。

好了,开始愉快的代码时间吧:

开发环境为Win10 Python 3.9,运行的时候Python需要安装requests
Python3.9 安装requests 应该CMD敲入:pip install requests

在这里也是边调试边写,这里把最终的代码贴出来:

import requests
import json
import urllibdef getSogouImag(category,length,path):n = lengthcate = categoryimgs = requests.get('http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category='+cate+'&tag=%E5%85%A8%E9%83%A8&start=0&len='+str(n))jd = json.loads(imgs.text)jd = jd['all_items']imgs_url = []for j in jd:imgs_url.append(j['bthumbUrl'])m = 0for img_url in imgs_url:print('***** '+str(m)+'.jpg *****'+'   Downloading...')urllib.request.urlretrieve(img_url,path+str(m)+'.jpg')m = m + 1print('Download complete!')getSogouImag('壁纸',2000,'d:/download/壁纸/')

程序跑起来的时候,笔者还是有点小激动的。来,感受一下:

至此,关于该爬虫程序的编程过程叙述完毕。整体来看,找到需要爬取元素所在url,是爬虫诸多环节中的关键。

最后,感谢您的阅读。您的每个点赞、留言、分享都是对我们最大的鼓励,笔芯~

如有疑问,欢迎在评论区一起讨论!

利用Python爬取网页美女图片,哇太多了,我U盘装满了!相关推荐

  1. 利用python爬取网页图片

    学习python爬取网页图片的时候,可以通过这个工具去批量下载你想要的图片 开始正题: 我从尤物网去爬取我喜欢的女神的写真照,我们这里主要用到的就两个模块 re和urllib模块,有的时候可能会用到t ...

  2. python爬取百度美女图片

    首先用chrome浏览器打开百度图片官网,抓包发现url https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj& ...

  3. python爬取网站美女图片

    今天周五,项目刚刚上线完,有些时间,闲着无聊,继续复习爬虫,这次打算爬取网站的美女图片.得先找到目标,然后目标网站还不会反爬虫,因为自己只是小白,好了开始. 寻找目标,发现了目标,哈哈 http:// ...

  4. python爬取欧美美女图片---xpath方法

    这里爬取的是http://sc.chinaz.com/tag_tupian/OuMeiMeiNv.html网站 献上欧美美女!!!! from lxml import etree import url ...

  5. 利用python爬取网页选考要求数据

    爬取背景:福建省发布了选考要求数据,想要获取数据进行分析,无奈数据量太大 需求分析:要爬取数据的网站为 http://fj.101.com/gaokao/#/,需要将数据存储为csv格式. 爬取代码如 ...

  6. Python3爬取网页中图片(2021-01-04 14:06:02),附上完整代码

    Python爬取网页中图片,附上完整代码 文章目录 Python爬取网页中图片,附上完整代码 概述 完整代码 概述 批量爬取数据,请遵循robots协议及相关网站协议及说明. 本代码仅供有需要爬取网页 ...

  7. 使用Python爬虫爬取网络美女图片

    代码地址如下: http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip instal ...

  8. python爬取图片-Python爬取网页中的图片(搜狗图片)详解

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的对象. 首先 ...

  9. 使用Python爬取网页图片

    使用Python爬取网页图片 李晓文 21 天前 近一段时间在学习如何使用Python进行网络爬虫,越来越觉得Python在处理爬虫问题是非常便捷的,那么接下来我就陆陆续续的将自己学习的爬虫知识分享给 ...

最新文章

  1. 在vue-cli项目中使用echarts
  2. springmvc+mybatis+mysql+maven
  3. Python之上下文管理协议
  4. html打印边距影响内容大小,关于web打印的问题,如何控制纸张大小和页边距
  5. Python高级——property属性
  6. 一个不限制插值个数和上采样倍数的视频增强方法
  7. mysqldatareader对象有多少个方法_血压的正常范围是多少?牢记这6个降压方法,有效地预防高血压...
  8. SQL语句操作优先级顺序
  9. JAVA加密解密→术语、密码分类、OSI与TCP/IP安全体系、Base64、消息摘要算法MD/SHA/MAC、对称加密算法DES/AES/PBE、非对称加密算法DH/RSA/EIGamaI
  10. wifi 2.4GHz和5GHz范围
  11. javascript获取随机rgb颜色和十六进制颜色的方法
  12. fabric安装及试用
  13. java工程师linux命令大全
  14. 南方CASS11.0安装教程
  15. python 今日头条视频自动上传_抖音视频怎么上传到今日头条?这个软件可一键操作很方便...
  16. c语言编译器w7,wintc下载|c语言编译器wintc win7/win8兼容版 v2.0下载 64位32位 - 3322软件站...
  17. anguarjs 上传图片预览_前端战五渣学前端——FileReader预览本地文件
  18. 微信公众平台开发[6] —— 微信开发集成类的使用
  19. Qtablewidget使用QHeaderView设置表头
  20. 感知机——鸢尾花 包含代码

热门文章

  1. 移动硬盘占用率100%导致无法读取故障修复
  2. 春天猫rtsy_春天的时代
  3. ZYNQ之UART中断实验软件设计
  4. 如何评估Kubernetes持久化存储方案
  5. 个人纳税java代码_java工资纳税系统 c排班系统 程序代码
  6. 万门大学PPT课程(一)1.5、1.6
  7. p38 MAPK调控酶及转录因子
  8. 微信小程序 扫二维码/条形码 标准倒计时
  9. js通过xlsx.js实现表格的处理
  10. 快手/快手小店滑块验证码逆向分析