shell爬取斗图网
#!/bin/bash read -p "请输入要爬取的页面数(默认为10):" page_num
page_num=${page_num:-}
echo $page_num
read -p "请输入要保存的目录名称(默认为img):" save_path_name
save_path_name=${save_page_name:-"/opt/img"}
[ ! -d $save_path_name ]&&mkdir $save_path_name
echo $save_path_name for i in `seq $page_num`
do base_url="http://www.doutula.com/article/list/?page=${i}"
#循环N次,将需要下载的img的url保存到imgurl.txt
echo "当前处理第$i个url" curl $base_url | egrep -o '(<img)()*(.*)(data-original=")(.*)"(.*)(>)' | egrep -o '(data-original=")(.*)"' | sed -r 's/" data-backup=.*?//g;s/data-original="//g' >> $save_path_name/imgurl.txt done #计数
file_count=; #一行一行遍历刚刚保存url的imgurl.txt文件
#sort imgurl.txt | uniq 代表去除重复行
for line in `sort $save_path_name/imgurl.txt | uniq`
do
#%s 从1970年1月1日00::00到目前经历的秒数 ,%N当前时间的纳秒数据 , $(date +%s%N)即秒数 + 纳秒,保证文件名唯一
#curl -o 表示把输出写到该文件中,即指定文件名并写到文件
type=${line##*.}
file_name=$(date +%s%N)".$type"
file_count=`expr $file_count + `
echo "当前下载第$file_count个图片"
curl -o $save_path_name/$file_name $line
done
[root@L shells]# vim doutu.sh
[root@L shells]# cat doutu.sh
#!/bin/bash read -p "请输入要爬取的页面数(默认为10):" page_num
page_num=${page_num:-}
echo $page_num
read -p "请输入要保存的目录名称(默认为img):" save_path_name
save_path_name=${save_page_name:-"/opt/img"}
[ ! -d $save_path_name ]&&mkdir $save_path_name
echo $save_path_name for i in `seq $page_num`
do base_url="http://www.doutula.com/article/list/?page=${i}"
#循环N次,将需要下载的img的url保存到imgurl.txt
echo "当前处理第$i个url" curl $base_url | egrep -o '(<img)()*(.*)(data-original=")(.*)"(.*)(>)' | egrep -o '(data-original=")(.*)"' | sed -r 's/" data-backup=.*?//g;s/data-original="//g' >> $save_path_name/imgurl.txt done #计数
file_count=; #一行一行遍历刚刚保存url的imgurl.txt文件
#sort imgurl.txt | uniq 代表去除重复行
for line in `sort $save_path_name/imgurl.txt | uniq`
do
#%s 从1970年1月1日00::00到目前经历的秒数 ,%N当前时间的纳秒数据 , $(date +%s%N)即秒数 + 纳秒,保证文件名唯一
#curl -o 表示把输出写到该文件中,即指定文件名并写到文件
type=${line##*.}
file_name=$(date +%s%N)".$type"
file_count=`expr $file_count + `
echo "当前下载第$file_count个图片"
curl -o $save_path_name/$file_name $line
done
shell爬取斗图网的更多相关文章
- 爬取斗图网图片,使用xpath格式来匹配内容,对请求伪装成浏览器, Referer 防跨域请求
6.21自我总结 一.爬取斗图网 1.摘要 使用xpath匹配规则查找对应信息文件 将请求伪装成浏览器 Referer 防跨域请求 2.爬取代码 #导入模块 import requests #爬取网址 ...
- python爬取斗图网中的 “最新套图”和“最新表情”
1.分析斗图网 斗图网地址:http://www.doutula.com 网站的顶部有这两个部分: 先分析“最新套图” 发现地址栏变成了这个链接,我们在点击第二页 可见,每一页的地址栏只有后面的pag ...
- python多线程爬取斗图啦数据
python多线程爬取斗图啦网的表情数据 使用到的技术点 requests请求库 re 正则表达式 pyquery解析库,python实现的jquery threading 线程 queue 队列 ' ...
- py3+requests+urllib+bs4+threading,爬取斗图图片
实现原理及思路请参考我的另外几篇爬虫实践博客 py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图:http://www.cnblogs.com/UncleYong/p/6892688. ...
- Python爬取 斗图表情,让你成为斗图大佬
话不多说,上结果(只爬了10页内容) 上代码:(可直接运行) 用到Xpath #encoding:utf-8 # __author__ = 'donghao' # __time__ = 2018/ ...
- 爬虫之爬取豆瓣top250电影排行榜及爬取斗图啦表情包解读及爬虫知识点补充
今日内容概要 如何将爬取的数据直接导入Excel表格 #如何通过Python代码操作Excel表格 #前戏 import requests import time from openpyxl impo ...
- Python Scrapy 爬取煎蛋网妹子图实例(一)
前面介绍了爬虫框架的一个实例,那个比较简单,这里在介绍一个实例 爬取 煎蛋网 妹子图,遗憾的是 上周煎蛋网还有妹子图了,但是这周妹子图变成了 随手拍, 不过没关系,我们爬图的目的是为了加强实战应用,管 ...
- Python协程爬取妹子图(内有福利,你懂得~)
项目说明: 1.项目介绍 本项目使用Python提供的协程+scrapy中的选择器的使用(相当好用)实现爬取妹子图的(福利图)图片,这个学会了,某榴什么的.pow(2, 10)是吧! 2.用到的知 ...
- Python3爬虫系列:理论+实验+爬取妹子图实战
Github: https://github.com/wangy8961/python3-concurrency-pics-02 ,欢迎star 爬虫系列: (1) 理论 Python3爬虫系列01 ...
随机推荐
- 怎么才能记住java线程的start()和run()谁是启动方法
start()和run()开始的时候总是记不住那个是线程的启动方法,现在是记得很真切了! 如果用run()启动线程就跟不用线程效果是一样的,因为是run是顺序执行的.start()才是线程的启动方法. ...
- 动态代理 aop切面实现事务管理
1.定义接口和实现 public interface UserService { public String getName(int id); public Integer getAge(int id ...
- THUSC2013
魔塔 BZOJ 设每个敌人的属性值为\(hp_i,atk_i,def_i\).自己的为\(HP,ATK,DEF\) 首先我们可以发现顺序是没有影响的. 然后我们可以发现合适的\(ATK\)一定满足\( ...
- 【静态延迟加载】self关键字和static关键字的区别
先来看下代码,从代码中发现问题.解决问题 //先实现一个手机工厂类 class Phone{ public static function setBrand(){ echo "Main Ph ...
- urllib基础
import urllib.request # urlretrieve(网址,本地路径) 直接下载网页到本地 urllib.request.urlretrieve("http://www.b ...
- Python 线程&进程与协程
Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...
- MyEclipse Derby 这么玩
首先得把MYECLIPSE自带的JDK的DERBY数据库的JAR文件给导入工程,反正没事把几个都导进来,如下: derby.jar,derbyclient.jar,derbynet.jar,derby ...
- arcgis js之点击获取featureLayer中的点
arcgis js之点击获取featureLayer中的点 代码: this.view.on('click', (evt) => { let layer = this.map.findLayer ...
- css的一些基础方法
1.css样式表分别有: 内联样式表 <!DOCTYPE html> <html lang="en"> <head> <meta char ...
- 第二章、前端之css
目录 第二章.前端之css 一.css介绍 二.css语法 三.css几种引入方式 四.css选择器 五.css属性相关 六.css盒子模型 第二章.前端之css 一.css介绍 css(Cascad ...