【Python】nvshens按目录批量下载图片爬虫1.00(单线程版)
# nvshens按目录批量下载图片爬虫1.00(单线程版)
from bs4 import BeautifulSoup
import requests
import datetime
import urllib.request
import os
user_agent='Mozilla/4.0 (compatible;MEIE 5.5;windows NT)'
headers={'User-Agent':user_agent}
# 找到的图片
pictures=[]
# 不断追逐,直到结束
def crawl(url):
print("爬取页面"+url);
try:
rsp=requests.get(url,headers=headers)
soup= BeautifulSoup(rsp.text,'html.parser',from_encoding='utf-8')
nextUrl="none";
for divs in soup.find_all(class_="gallery_wrapper"):
# 把找到的图片放到数组里去
for img in divs.find_all('img'):
print(img.get("src"))
pictures.append(img.get("src"))
#找下一页
for link in divs.find_all('a',class_='a1'):
if link.string=='下一页' and link.get("href").find('.html')!=-1:
nextUrl='https://www.nvshens.com'+link.get("href");
#if len(pictures)>10:
# downloadPics()
#time.sleep(5)
if nextUrl!="none":
print("前往下一页");
crawl(nextUrl)
else:
print('爬取结束,开始下载...')
downloadPics()
print('下载结束.')
except Exception as e:
print("发生异常。重新爬行")# 不管怎么出现的异常,就让它一直爬到底
crawl(url)
# 下载图片到本地
def downloadPics():
while(len(pictures)>0):
pic=pictures.pop()
name=pic.split('/')[-1]
folder=pic.split('/')[-2]
# 判断目录是否存在,不存在则创建之
if os.path.exists('./'+folder)==False:
os.makedirs('./'+folder)
try:
rsp=urllib.request.urlopen(pic)
img=rsp.read()
with open('./'+folder+"/"+name,'wb') as f:
f.write(img)
print('图片'+pic+'下载完成')
except Exception as e:
print('图片'+pic+'下载异常,塞回重试')
pictures.append(pic);
# 循环下载图片
def main():
for i in range(10000,30000):
url='https://www.nvshens.com/g/'+str(i)+'/'
starttime = datetime.datetime.now()
crawl(url)
endtime = datetime.datetime.now()
print("下载用时"+str((endtime - starttime).seconds)+"秒")
print('对'+url+'的下载结束.')
# Kickoff Start
main()
【Python】nvshens按目录批量下载图片爬虫1.00(单线程版)的更多相关文章
- python爬取并批量下载图片
import requests from lxml import etree url='http://desk.zol.com.cn/meinv/' add1='.html' urls=[] i = ...
- scrapy操作mysql/批量下载图片
1.操作mysql items.py meiju.py 3.piplines.py 4.settings.py -------------------------------------------- ...
- 用python批量下载图片
一 写爬虫注意事项 网络上有不少有用的资源, 如果需要合理的用爬虫去爬取资源是合法的,但是注意不要越界,前一阶段有个公司因为一个程序员写了个爬虫,导致公司200多个人被抓,所以先进入正题之前了解下什么 ...
- node 爬虫 --- 批量下载图片
步骤一:创建项目 npm init 步骤二:安装 request,cheerio,async 三个模块 request 用于请求地址和快速下载图片流. https://github.com/reque ...
- python——批量下载图片
前言 批量下载网页上的图片需要三个步骤: 获取网页的URL 获取网页上图片的URL 下载图片 例子 from html.parser import HTMLParser import urllib.r ...
- 根据url地址单个或批量下载图片
我们在java开发的时候会遇到通过url地址下载图片的情况.方便起见,我把通过url地址下载图片封装了tool工具类,方便以后使用 1.根据如:http://abc.com/hotels/a.jpg ...
- javaWeb 批量下载图片
批量下载网页图片 CreateTime--2017年9月26日15:40:43 Author:Marydon 所用技术:javascript.java 测试浏览器:chrome 开发工具:Ecli ...
- C++ 根据图片url 批量 下载图片
最近需要用到根据图片URL批量下载到本地的操作.查找了相关资料,记录在这儿. 1.首先在CSV文件中提取出url ifstream fin("C:\\Users\\lenovo\\Deskt ...
- 利用Node 搭配uglify-js压缩js文件,批量下载图片到本地
Node的便民技巧-- 压缩代码 下载图片 压缩代码 相信很多前端的同学都会在上线前压缩JS代码,现在的Gulp Webpack Grunt......都能轻松实现.但问题来了,这些都不会,难道就要面 ...
随机推荐
- mysql树形结构递归查询
之前一直用的是Oracle,对于树形查询可以使用start with ... connect by ' connect by id = prior parent_id; 没错,这是Oracle所支持的 ...
- Unity Shader基础
Unity Shader基础 先上代码,代码一般是这样的. void Initialization(){ //先从硬盘加载代码再加载到GPU中 string vertexShaderCode = Lo ...
- hdu 1180 诡异的楼梯(优先队列)
Hogwarts正式开学以后,Harry发现在Hogwarts里,某些楼梯并不是静止不动的,相反,他们每隔一分钟就变动一次方向. 比如下面的例子里,一开始楼梯在竖直方向,一分钟以后它移动到了水平方向 ...
- Scrapy实战篇(五)爬取京东商城文胸信息
创建scrapy项目 scrapy startproject jingdong 填充 item.py文件 在这里定义想要存储的字段信息 import scrapy class JingdongItem ...
- RxJava 机制
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha rxjava 是 以 响应式 编程思想 编程的 java类库
- 【静态主席树】POJ2104-K-th Number
求区间第k大.裸线段树. 莫队版本:☆ #include<iostream> #include<cstdio> #include<cstring> #include ...
- 20162327WJH四则运算第二周总结
学号 20162327 <程序设计与数据结构>四则运算第二次实验报告 1.需求分析 1.本周我们进行了四则运算的后续完善,因为学习的比较欠缺,所以我负责比较简单的部分,就是只包含一个运算符 ...
- Python turtle绘图实例分析
画一个红色的五角星 from turtle import * color('red','red') begin_fill() for i in range(5): fd(200) rt(144) en ...
- python开发_python中的Boolean运算和真假值
python中的真假值: Truth Value Testing Any object can be tested for truth value, for use in an if or while ...
- 2015 UESTC 数据结构专题C题 秋实大哥与快餐店 字典树
C - 秋实大哥与快餐店 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/59 ...