当前位置:   article > 正文

Python爬虫:urllib.request库下载图片_urllib.request 图片

urllib.request 图片

1、说明:

       使用urllib.request库请求汽车之家网页,返回报文用BeautifulSoup解析后提取出图片的下载链接,再使用urllib.request库下载图片到指定目录

2、代码:

  1. '''
  2. 在本python文件所在的目录下新建文件夹“mrsoft”,在“mrsoft”下新建四个文件夹:
  3. 车身外观、车厢座椅、其他细节、中控方向盘。
  4. 在汽车之家网站上下载图片分别放入以上四个文件夹里,并将图片文件名编好号
  5. 不足:比方说“车厢座椅”有103张图片,本程序只下载了第一页的62张
  6. '''
  7. import time
  8. import urllib.request
  9. from bs4 import BeautifulSoup
  10. import os
  11. class ReTbmm():
  12. def Retbmm(self):
  13. start = time.time()
  14. self.cdir = os.getcwd()
  15. # https://www.autohome.com
  16. # 车身外观
  17. url1 ='https://car.autohome.com.cn/pic/series-s32890/385-1.html#pvareaid=2023594'
  18. # 中控方向盘
  19. url2='https://car.autohome.com.cn/pic/series-s32890/385-10.html#pvareaid=2042220'
  20. # 车厢座椅
  21. url3 = 'https://car.autohome.com.cn/pic/series-s32890/385-3.html#pvareaid=2042220'
  22. # 其他细节
  23. url4 = 'https://car.autohome.com.cn/pic/series-s32890/385-12.html#pvareaid=2042220'
  24. self.getImag('车身外观',url1)
  25. self.getImag('中控方向盘', url2)
  26. self.getImag('车厢座椅', url3)
  27. self.getImag('其他细节', url4)
  28. end=time.time()
  29. print('run time:'+str(end -start))
  30. def getImag(self,name,urls):
  31. '''加上头部信息是为了解决反爬虫设置,
  32. 头部信息获取方式:在网页空白处右键“审查元素”,点击网络监视器Network,按F5刷新
  33. 网页,在Network拖到最下方找到“User-Agent”
  34. '''
  35. user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240'
  36. headers={'User-Agent':user_agent}
  37. request= urllib.request.Request(urls,headers=headers)
  38. response =urllib.request.urlopen(request)
  39. bsObj = BeautifulSoup(response,'html.parser')
  40. #找出所有以“<img”开头的节点
  41. #如: <img width="240" height="35" alt="汽车之家产品库" src="//x.autoimg.cn/car/images/logonew.png" />
  42. t1 =bsObj.find_all('img')
  43. for t2 in t1:
  44. t3 =t2.get('src')#获取该节点中的src字段,返回字符串,如://x.autoimg.cn/car/images/logonew.png
  45. print(t3)
  46. path = self.cdir +'/mrsoft/'+str(name)
  47. if not os.path.exists(path):
  48. os.makedirs(path)
  49. n =0
  50. for img in t1:
  51. n=n+1
  52. link =img.get('src')#获取该节点中的src字段,返回字符串,如://x.autoimg.cn/car/images/logonew.png
  53. if link:
  54. s ='http:'+str(link)#拼装图片完整的网址,如http://x.autoimg.cn/car/images/logonew.png
  55. i = link[link.rfind('.'):]#图片的后缀,如:.png
  56. try:
  57. request=urllib.request.Request(s)
  58. response =urllib.request.urlopen(request)
  59. imgData=response.read()#图片的二进制数据流
  60. pathfile =path+r'/'+str(n)+i #路径+图片编号+原始图片后缀
  61. with open( pathfile,'wb') as f:
  62. f.write(imgData) #将图片的二进制数据流写入文件
  63. f.close()
  64. print('下载完成图片'+str(n))
  65. except:
  66. print('11')
  67. if __name__ =='__main__':
  68. ui =ReTbmm()
  69. ui.Retbmm()

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/247893?site
推荐阅读
相关标签
  

闽ICP备14008679号