最近几天,研究了一下一直很好奇的爬虫算法。这里写一下最近几天的点点心得。下面进入正文:
你可能需要的工作环境:
Python 3.9官网下载
我们这里以sogou作为爬取的对象。
首先我们进入搜狗图片https://pic.sogou.com/,进入壁纸分类(当然只是个例子Q_Q),因为如果需要爬取某网站资料,那么就要初步的了解它…
右键图片>>检查
requests
提取该组件,进而获取img的src然后使用urllib.request.urlretrIEve
逐个下载图片,从而达到批量获取资料的目的,思路好了;下面应该告诉程序要爬取的url为http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD,此url来自进入分类后的地址栏。明白了URL地址我们来开始愉快的代码时间吧:
在写这段爬虫程序的时候,最好要逐步调试,确保我们的每一步 *** 作正确,这也是程序猿应该有的好习惯。下面我们来剖析该url指向的网页。
import requestsimport urllibfrom bs4 import BeautifulSoupres = requests.get('http://pic.sogou.com/pics/recommend?category=%B1%DA%D6%BD')soup = BeautifulSoup(res.text,'HTML.parser')print(soup.select('img'))
output:
因此考虑可能该元素是动态的,细心的同学可能会发现,当在网页内,向下滑动鼠标滚轮,图片是动态刷新出来的,也就是说,该网页并不是一次加载出全部资源,而是动态加载资源。这也避免了因为网页过于臃肿,而影响加载速度。
下面痛苦的探索开始了,我们是要找到所有图片的真正的url 笔者也是刚刚接触,找这个不是太有经验。最后找的位置F12>>Network>>XHR>>(点击XHR下的文件)>>PrevIEw。
得到第二行
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 requestsimport Jsonimport urllibdef 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爬取网页美女图片,哇太多了,我U盘装满了!全部内容,希望文章能够帮你解决利用Python爬取网页美女图片,哇太多了,我U盘装满了!所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)