• Python爬虫批量下载图片


    一、思路:

            1. 分析URL,图片的URL内嵌于base_url的返回当中

            2. 下载图片

    二、代码 

    1. import time
    2. import requests
    3. import os
    4. from lxml import etree
    5. class DownloadImg():
    6. '''
    7. 爬虫进行美女图片下载
    8. '''
    9. def __init__(self):
    10. self.url = 'http://xxxxxx/4kmeinv/'
    11. self.base_url = 'xxxxxxxxxx'
    12. self.headers = {
    13. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
    14. }
    15. self.page = 1
    16. #创建图片存储目录
    17. def create_img_dir(self):
    18. current_dir = os.path.dirname(__file__)
    19. img_dir = os.path.join(current_dir,'img')
    20. if not os.path.exists(img_dir):
    21. os.makedirs(img_dir)
    22. return img_dir
    23. #下载图片
    24. def download_img(self,url_list):
    25. for url in url_list:
    26. res = requests.get(url=url,headers=self.headers).text
    27. tree = etree.HTML(res)
    28. self.create_img_dir()
    29. #解析
    30. for li in tree.xpath('//div[@class="slist"]/ul/li'):
    31. img_url = li.xpath('./a/img/@src')[0]
    32. full_img_url = self.base_url + img_url
    33. print(full_img_url)
    34. img_name = full_img_url.split('/')[-1]
    35. full_img_name = os.path.join(self.create_img_dir(), img_name)
    36. # 开始下载图片
    37. with open(full_img_name, 'wb') as fs:
    38. content = requests.get(url=full_img_url, headers=self.headers).content
    39. fs.write(content)
    40. print("{}图片下载完成 ".format(img_name))
    41. time.sleep(1)
    42. #生成图片URL,返回每个page组成的列表
    43. def get_img_url(self,page):
    44. url_list = [self.url]
    45. if page == 1 :
    46. return url_list
    47. elif page > 1 :
    48. '''
    49. https://xxxxxxx/index_3.html
    50. '''
    51. for i in range(1,page+1):
    52. if i == 1 :
    53. continue
    54. multi_url = self.url + "index_{}.html".format(str(page))
    55. url_list.append(multi_url)
    56. return url_list
    57. if __name__ == '__main__':
    58. #下载页数,2页
    59. page = 2
    60. #定义类对象
    61. down_img = DownloadImg()
    62. url = down_img.get_img_url(2)
    63. print(url)
    64. down_img.download_img(url)
    65. print("图片全部下载完成,程序退出")

  • 相关阅读:
    利用亚马逊 云服务器 EC2 和S3免费套餐搭建私人网盘
    ubuntu16.04修改静态ip
    【Kotlin学习路线】讲解
    【深度学习笔记】计算机视觉——单发多框检测(SSD)
    c++11 lambda表达式(二)
    java-net-php-python-Java奖助学金评审管理系统计算机毕业设计程序
    02、Python 字符串
    企业微信H5登录流程,以及遇到的问题解决
    AIGC:机器人也有“成长的烦恼”
    Appnium如何正确链接模拟器
  • 原文地址:https://blog.csdn.net/weixin_41910699/article/details/134425449