python采集博客中上传的QQ截图文件


Posted in Python onJuly 18, 2014

哎,以前写博文的时候没注意,有些图片用QQ来截取,获得的图片文件名都是类似于QQ截图20120926174732-300×15.png的形式,昨天用ftp备份网站文件的时候发现,中文名在flashfxp里面显示的是乱码的,看起来好难受,所以写了一个python小脚本,爬取整个网站,然后获取每个文章页面的图片名,并判断如果是类似于QQ截图20120926174732-300×15.png的形式就输出并将该图片地址和对应的文章地址保存在文件中,然后通过该文件来逐个修改。

好了,下面是程序代码:

import urllib2
from bs4 import BeautifulSoup
import re
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
 
baseurl = "https://3water.com/dont-worry.html"
#说明下,起始地址是第一篇文章的地址,通过该文章的页面就
#可以使用BeautifulSoup模块来获取上一篇文章的地址
 
file = open(r"E:\123.txt","a")
 
def pageloop(url):
  page = urllib2.urlopen(url)
  soup = BeautifulSoup(page)
  img = soup.findAll(['img'])
  if img == []:
    print "当前页面没有图片"
    return
  else:
    for myimg in img:
      link = myimg.get('src')
      print link
      
      pattern = re.compile(r'QQ\S*[0-9]*png')
      badimg = pattern.findall(str(link))
      if badimg:
        print url
        file.write(link + "\n")
        file.write(url+"\n")
      
 
 
def getthenextpage(url):
  pageloop(url)
  page = urllib2.urlopen(url)
  soup = BeautifulSoup(page)
  for spanclass in soup.findAll(attrs={"class" : "article-nav-prev"}):
    #print spanclass
    if spanclass.find('article-nav-prev') != -1:
      pattern = re.compile(r'https://3water.com/\S*html')
      pageurl = pattern.findall(str(spanclass))
      for i in pageurl:
        #print i
        getthenextpage(i)
       
      
 
getthenextpage(baseurl)
 
 
 
print "the end!"
file.close()

最后,对和我以前刚开始做网站的同学说下,图片命名的话最好是用数字形式或者是英文、拼音的形式,要不然到最后想修改的话就麻烦了,所以最好就是从刚开始就养成好的习惯,用正确的命名规范来问文章、图片来命名,这样就会好很多。

Python 相关文章推荐
python写日志封装类实例
Jun 28 Python
Python中的上下文管理器和with语句的使用
Apr 17 Python
解读python logging模块的使用方法
Apr 17 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
python多线程同步之文件读写控制
Feb 25 Python
python处理excel绘制雷达图
Oct 18 Python
Django 自动生成api接口文档教程
Nov 19 Python
python实现翻译word表格小程序
Feb 27 Python
使用python批量修改XML文件中图像的depth值
Jul 22 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 Python
Python字符串查找基本操作代码案例
Oct 27 Python
Python下singleton模式的实现方法
Jul 16 #Python
python的迭代器与生成器实例详解
Jul 16 #Python
Python的内存泄漏及gc模块的使用分析
Jul 16 #Python
Python的垃圾回收机制深入分析
Jul 16 #Python
python中将字典转换成其json字符串
Jul 16 #Python
记录Django开发心得
Jul 16 #Python
Python实现动态添加类的属性或成员函数的解决方法
Jul 16 #Python
You might like
PHP验证码生成原理和实现
2016/01/24 PHP
PHP中的访问修饰符简单比较
2019/02/02 PHP
jquery $.each 和for怎么跳出循环终止本次循环
2013/09/27 Javascript
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
Node.js中使用mongoskin操作mongoDB实例
2014/09/28 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
Vue项目全局配置微信分享思路详解
2018/05/04 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
浅谈vue加载优化策略
2019/03/19 Javascript
使用Node.js写一个代码生成器的方法步骤
2019/05/10 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
vue-router为激活的路由设置样式操作
2020/07/18 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
2020/10/30 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
深入解析Python的Tornado框架中内置的模板引擎
2016/07/11 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
Python之py2exe打包工具详解
2017/06/14 Python
关于Python中空格字符串处理的技巧总结
2017/08/10 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
Python多线程获取返回值代码实例
2020/02/17 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
Weekendesk意大利:探索多种引人入胜的周末主题
2016/10/14 全球购物
管理学专业个人求职信范文
2013/09/21 职场文书
高中语文课后反思
2014/04/27 职场文书
作风建设整改方案
2014/10/27 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python
解决pytorch读取自制数据集出现过的问题
2021/05/31 Python
Python异常类型以及处理方法汇总
2021/06/05 Python