QQ泡沫乐园 · 免费提供游戏辅助,破解软件,活动资讯,喜欢记得收藏哦!
综合软件_线报活动_游戏辅助_最新电影_最优质的的辅助分享平台

批量爬取图片的过程分析,你知道吗?(图)

网络 2023-02-02 16:40

请复制里面的url直接在某个浏览器打开,你会看见如下内容:

这就是通过网页访问到的该网站的该图片,于是我们可以直接借助requests模块,进行这个图片的恳求,于是这个网站便会返回给我们该图片的数据,我们再把数据写入本地文件就行,比较简单。

  1. import requests

  2. headers={

  3. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}

  4. url='https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-001.jpg'

  5. re=requests.get(url,headers=headers)

  6. print(re.status_code)#查看请求状态,返回200说明正常

  7. path='test.jpg'#文件储存地址

  8. with open(path, 'wb') as f:#把图片数据写入本地,wb表示二进制储存

  9. for chunk in re.iter_content(chunk_size=128):

  10. f.write(chunk)

然后得到test.jpg图片,如下

网络图片地址 在word中显示图片_三亚希尔顿酒店地址地图片_网络图片地址怎么保留到本地

点击打开查看如下:

便是下载成功辣,很简单吧。

现在剖析下批量下载,我们将里面的代码打包成一个函数,于是针对每张图片,单独一个名子,单独一个图片文件恳求,于是有如下代码:

  1. import requests

  2. def get_pictures(url,path):

  3. headers={

  4. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}

  5. re=requests.get(url,headers=headers)

  6. print(re.status_code)#查看请求状态,返回200说明正常

  7. with open(path, 'wb') as f:#把图片数据写入本地,wb表示二进制储存

  8. for chunk in re.iter_content(chunk_size=128):

  9. f.write(chunk)

  10. url='https://img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-001.jpg'

  11. path='test.jpg'#文件储存地址

  12. get_pictures(url,path)

网络图片地址怎么保留到本地_网络图片地址 在word中显示图片_三亚希尔顿酒店地址地图片

现在要实现批量下载图片,也就是批量获得图片的url,那么我们就得剖析网页的代码结构,打开原始网站,会听到如下的图片:

于是我们须要分别得到该页面中显示的所有图片的url,于是我们再度用requests模块返回当前该页面的内容,如下:

  1. import requests

  2. headers={

  3. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}

  4. url='https://www.ivsky.com/tupian/bianxingjingang_v622/'

  5. re=requests.get(url,headers=headers)

  6. print(re.text)

运行会返回当前该页面的网页结构内容,于是我们找到和图片相关的也就是.jpg或则.png等图片格式的纸条,如下:

网络图片地址 在word中显示图片_网络图片地址怎么保留到本地_三亚希尔顿酒店地址地图片

上面圈下来的**//img.ivsky.com/img/tupian/t/201008/05/bianxingjingang-017.jpg**便是我们的图片url,不过还须要上面加上https:,于是完成的url就是。

我们晓得了这个结构,现在就是把这个提取下来,写个简单的解析式:

  1. import requests

  2. headers={

  3. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}

  4. url='https://www.ivsky.com/tupian/bianxingjingang_v622/'

  5. re=requests.get(url,headers=headers)

  6. def get_pictures_urls(text):

  7. st='img src="'

  8. m=len(st)

  9. i=0

  10. n=len(text)

  11. urls=[]#储存url

  12. while i<n:

  13. if text[i:i+m]==st:

  14. url=''

  15. for j in range(i+m,n):

  16. if text[j]=='"':

  17. i=j

  18. urls.append(url)

  19. break

  20. url+=text[j]

  21. i+=1

  22. return urls

  23. urls=get_pictures_urls(re.text)

  24. for url in urls:

  25. print(url)

打印结果如下:

网络图片地址 在word中显示图片_网络图片地址怎么保留到本地_三亚希尔顿酒店地址地图片

得到了url,现在就直接装入一开始的get_pictures函数中,爬取图片辣。

  1. import requests

  2. def get_pictures(url,path):

  3. headers={

  4. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}

  5. re=requests.get(url,headers=headers)

  6. print(re.status_code)#查看请求状态,返回200说明正常

  7. with open(path, 'wb') as f:#把图片数据写入本地,wb表示二进制储存

  8. for chunk in re.iter_content(chunk_size=128):

  9. f.write(chunk)

  10. def get_pictures_urls(text):

  11. st='img src="'

  12. m=len(st)

  13. i=0

  14. n=len(text)

  15. urls=[]#储存url

  16. while i<n:

  17. if text[i:i+m]==st:

  18. url=''

  19. for j in range(i+m,n):

  20. if text[j]=='"':

  21. i=j

  22. urls.append(url)

  23. break

  24. url+=text[j]

  25. i+=1

  26. return urls

  27.  

  28. headers={

  29. 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'}

  30. url='https://www.ivsky.com/tupian/bianxingjingang_v622/'

  31. re=requests.get(url,headers=headers)

  32. urls=get_pictures_urls(re.text)#获取当前页面所有图片的url

  33. for i in range(len(urls)):#批量爬取图片

  34. url='https:'+urls[i]

  35. path='变形金刚'+str(i)+'.jpg'

  36. get_pictures(url,path)

结果如下:

网络图片地址 在word中显示图片_网络图片地址怎么保留到本地_三亚希尔顿酒店地址地图片

然后就完成辣,这里只是简单介绍下批量爬取图片的过程,具体的网站须要具体剖析,所以本文尽可能详尽的展示了批量爬取图片的过程剖析,希望对你的学习有所帮助,如有问题请及时强调,谢谢~

到此这篇关于Python 爬虫批量爬取网页图片保存到本地的文章就介绍到这了

欢迎你们点赞,留言,转发,转载,感谢你们的相随与支持

万水千山总是情,点个【在看】行不行

*声明:本文于网路整理,版权归原作者所有,如来源信息有误或侵害权益,请联系我们删掉或授权事宜

url