代码如下:

#Description:批量下载搜款网
#Author:ytouch
#使用方式
#现在是支持两种:一种是批量,一种是单个
#使用方法:
#在main方式中
# 调用singleUrlDownload(url) 参数为搜款网房源链接:https://www.vvic.com/item/15710099 这个可以下载单个
# 调用readTxtToDownload(txt_path) 参数为文本路径,这个可以下载多个链接的
# remark:chrome_browser = webdriver.Chrome(executable_path='E:\chromedriver.exe')
# 使用时,需要设置本地的chromedriver.exe路径。
# chromedriver.exe下载链接 https://npm.taobao.org/mirrors/chromedriver/
# 其余为安装相关库
# pip install requests
# pip install selenium
# pip install bs4from bs4 import BeautifulSoup
from selenium import webdriver
import requests
import time
import osdef downloadFile(name, url):''':param name:下载保存的名称:param url: 下载链接:return:'''headers = {'Proxy-Connection': 'keep-alive'}r = requests.get(url, stream=True, headers=headers)length = float(r.headers['content-length'])f = open(name, 'wb')count = 0count_tmp = 0time1 = time.time()for chunk in r.iter_content(chunk_size=512):if chunk:f.write(chunk)count += len(chunk)if time.time() - time1 > 2:p = count / length * 100speed = (count - count_tmp) / 1024 / 1024 / 2count_tmp = countprint(name + ': ' + formatFloat(p) + '%' + ' Speed: ' + formatFloat(speed) + 'M/S')time1 = time.time()f.close()def formatFloat(num):return '{:.2f}'.format(num)test_url ='https://www.vvic.com/item/15710099' #测试用例urlclass DownloadPhoto:def __init__(self,url):self.folder_name = url.split('item/')[1]self.search_url = url #需要搜索的urlself.splice_url = 'https://img1.vvic.com/upload/' #需要拼接下载图片的字符串def beginDownload(self):vvic_data = requests.get(self.search_url)soup = BeautifulSoup(vvic_data.text,'lxml')#下载主图功能master_divs = soup.find_all('div',class_='tb-thumb-item')print(len(master_divs))for k in master_divs:img_url = k.find('img')print(img_url)img_spice_url =img_url.get('big')if img_spice_url == None:continueif img_spice_url.find('alicdn')>0:# 使用另一种方式下载img_list = img_spice_url.split('/')downloadFile(self.folder_name+'/主图/'+img_list[len(img_list)-1],'http:'+img_spice_url)continueif img_spice_url.find('jpg')< 0 :continuedown_url = self.splice_url+img_spice_url.split('upload/')[1] #拼接下载主图的链接downloadFile(self.folder_name+'/主图/'+img_spice_url.split('upload/')[1],down_url) # 开始下载#下载sku图片文件功能sku_divs = soup.find('div',class_='value color-choice')if sku_divs != None:sku_imgs = sku_divs.find_all('img')for sku_img in sku_imgs:sku_url = sku_img.get('big')if sku_url.find('alicdn') > 0 :print(sku_url)print('sku中发现alicdn')continueprint(sku_url)sku_colors_name = sku_img.get('alt')downloadFile(self.folder_name + '/sku图/' + sku_colors_name + '.jpg',self.splice_url + sku_url.split('upload/')[1])#print(sku_imgs)#下载详情图文件功能chrome_browser = webdriver.Chrome(executable_path='E:\chromedriver.exe')chrome_browser.get(self.search_url)vvic_html = chrome_browser.page_sourcechrome_browser.close()detail_soup = BeautifulSoup(vvic_html,'lxml')detail_divs = detail_soup.find('div',class_='d-content')detail_imgs = detail_divs.find_all('img')for k in detail_imgs:print('检测到')detail_img_url = k.get('data-original')print(detail_img_url)if detail_img_url.find('jpg') < 0 :continueprint(detail_img_url)if detail_img_url.find('alicdn') >0 :detail_url_list = detail_img_url.split('/')downloadFile(self.folder_name+'/详情图/'+detail_url_list[len(detail_url_list)-1],detail_img_url)continuedetail_img_name = detail_img_url.split('upload/')[1]downloadFile(self.folder_name+'/详情图/'+detail_img_name,self.splice_url+detail_img_name)print('ok')def readTxtToDownload(txt_path):''':param txt_path:txt文本路径:brief:按行读取下载:return:'''file = open(txt_path)for line in file:str_url = line.strip() #去除首尾if str_url!=None:folder_name = str_url.split('item/')[1]os.makedirs(folder_name + '/主图')os.makedirs(folder_name + '/详情图')os.makedirs(folder_name + '/sku图')bd = DownloadPhoto(str_url)bd.beginDownload()def singleUrlDownload(single_url):folder_name = single_url.split('item/')[1]os.makedirs(folder_name + '/主图')os.makedirs(folder_name + '/详情图')os.makedirs(folder_name + '/sku图')bd = DownloadPhoto(single_url)bd.beginDownload()if __name__ == '__main__':# 创建文件夹singleUrlDownload(test_url)

运行结果:

Python爬虫项目---批量从搜款网下载主图、颜色图详情图相关推荐

  1. Python爬虫-爬取快看漫画网图片并拼接成漫画长图

    Python爬虫-爬取快看漫画网图片并拼接成漫画长图 1.爬取图片 2.拼接图片 1.爬取图片 import os import requests from bs4 import BeautifulS ...

  2. Python爬虫项目--批量爬取公司债券平台网公司信息并下载PDF

    # 下载公司债券平台项目PDF信息 08年6月 合起来67页数据import os import time import requests from selenium import webdriver ...

  3. Python爬虫项目---批量下载深圳证券信息

    代码: import os import requests from selenium import webdriver from bs4 import BeautifulSoup import js ...

  4. Python爬虫项目--批量下载联合国粮食数据

    代码如下: # 爬取国家粮食数据 import os import time import requestsSPICE_URL = 'https://comtrade.un.org/api/get?t ...

  5. python批量读取图片并批量保存_Python爬虫:批量抓取花瓣网高清美图并保存

    原标题:Python爬虫:批量抓取花瓣网高清美图并保存 昨天看到了不错的图片分享网--花瓣,里面的图片质量还不错,所以利用selenium+xpath我把它的妹子的栏目下爬取了下来,以图片栏目名称给文 ...

  6. Python爬虫项目100例

    前言 Python爬虫项目100例(一):入门级 CentOS环境安装 和谐图网站爬取 美空网数据爬取 美空网未登录图片爬取 27270图片爬取 蜂鸟网图片爬取之一 蜂鸟网图片爬取之二 蜂鸟网图片爬取 ...

  7. Python爬虫项目70例,附源码 70个Python爬虫练手实例

    今天博主给大家带来了一份大礼,Python爬虫70例!!!以及完整的项目源码!!! 本文下面所有的爬虫项目都有详细的配套教程以及源码,都已经打包好上传到百度云了,链接在文章结尾处! 扫码此处领取大家自 ...

  8. 服装批量下单php,搜款网批量下单上线啦

    搜款网批量下单上线啦,非常方便进货量大的零售商使用,不需要再将商品一个个下单,批量下单能提高操作效率,节省您的进货时间,详细的操作说明如下: 1.进入「个人中心」页面,您可从网站首页点击「个人中心」或 ...

  9. python爬虫知网实例-33个Python爬虫项目实战(推荐)

    今天为大家整理了32个Python爬虫项目. 整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1] ...

最新文章

  1. Apress水果大餐——移动开发
  2. linux意外重启分析,Linux关机重启流程分析
  3. GDCM:gdcm::StringFilter的测试程序
  4. 迟到的2017年终总结与2018目标规划
  5. python 窗口 网页 访问_同事用Python操控浏览器运行,引的妹子围观不止!
  6. TensorFlow 2.0 - Hub 模型复用
  7. 每天学一点ubuntu指令
  8. 素数筛——区间段内最小,最大素数,以及这个区间中素数的个数
  9. 如何查计算机配件的配置,如何查看电脑配置信息?教你四种方法
  10. 整型常量与实型常量、符号常量和字符常量的区别
  11. Console口和Telnet远程登陆
  12. 笔记本电脑亮度调节键失灵了,该怎么解决?
  13. 二元二次方程 c语言,C语言求解三元一次方程组的解
  14. 左手鼠标指针——Windows11Aeroleft
  15. Docker可视化工具 DockerUI 和 Shipyard 的区别
  16. 论文笔记:WORD TRANSLATION WITHOUT PARALLEL DATA
  17. 关于两RS485系统共地的问题
  18. director入门
  19. WPF入门第六篇 WPF的Binding
  20. 学习Linux命令:关于ssh命令

热门文章

  1. [vue require动态引入组件、变量]
  2. Python菜鸟快乐游戏编程_pygame(4)
  3. 【洛谷P3410】拍照题解(最大权闭合子图总结)
  4. 每天干的啥?(2018.06)
  5. 一站式WPF--依赖属性(DependencyProperty)
  6. 人如果没有愿望。。。。。。
  7. 一元多项式的相加(单链表的应用)
  8. 离散事件模拟(银行业务模拟。实现算法3.6、3.7的程序)
  9. html5,用或不用,它都在那里
  10. 10-1-数据库连接池