没想到python是如此强大,令人着迷,以前看见图片总是一张一张复制粘贴,现在好了,学会python就可以用程序将一张张图片,保存下来。下面这篇文章主要给大家介绍了利用python3.6爬取搜狗图片网页中图片的相关资料,需要的朋友可以参考下。
前言
最近几天,研究了一下一直很好奇的爬虫算法。这里写一下最近几天的点点心得。下面进入正文:
我们这里以sogou作为爬取的对象。
首先我们进入搜狗图片,进入壁纸分类(当然只是个例子q_q),因为如果需要爬取某网站资料,那么就要初步的了解它…
发现我们需要的图片src是在img标签下的,于是先试着用 python 的 requests提取该组件,进而获取img的src然后使用 urllib.request.urlretrieve逐个下载图片,从而达到批量获取资料的目的,思路好了,下面应该告诉程序要爬取的url为http://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:
发现,有点接近我们需要的元素了,点开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为长度,也即图片的数量。好了,开始愉快的代码时间吧:
开发环境为win7 python 3.6,运行的时候python需要安装requests,
python3.6 安装requests 应该cmd敲入:
pip install requests
笔者在这里也是边调试边写,这里把最终的代码贴出来:
import requests
import json
import urllib
def getsogouimag(category,length,path):
n = length
cate = category
imgs = 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 = 0
for img_url in imgs_url:
print(‘***** ‘+str(m)+’.jpg *****’+’ downloading…’)
urllib.request.urlretrieve(img_url,path+str(m)+’.jpg’)
m = m + 1
print(‘download complete!’)
getsogouimag(‘壁纸’,2000,’d:/download/壁纸/’)
程序跑起来的时候,笔者还是有点小激动的。来,感受一下:
至此,关于该爬虫程序的编程过程叙述完毕。整体来看,找到需要爬取元素所在url,是爬虫诸多环节中的关键
以上就是详解python爬取网页中的搜狗图片方法的详细内容,更多请关注 第一php社区 其它相关文章!