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 相关文章推荐
Mac下Supervisor进程监控管理工具的安装与配置
Dec 16 Python
Python3实现的画图及加载图片动画效果示例
Jan 19 Python
python对excel文档去重及求和的实例
Apr 18 Python
python实现图片批量压缩程序
Jul 23 Python
python中使用 xlwt 操作excel的常见方法与问题
Jan 13 Python
Python实现的删除重复文件或图片功能示例【去重】
Apr 23 Python
Django保护敏感信息的方法示例
May 09 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
Jun 12 Python
python实例化对象的具体方法
Jun 17 Python
Python 分布式缓存之Reids数据类型操作详解
Jun 24 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
Jan 08 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 正则学习实例
2008/07/30 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
jquery操作select大全
2014/04/25 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
对于js垃圾回收机制的理解
2017/09/14 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
各个系统下的Python解释器相关安装方法
2015/10/12 Python
Python面向对象类的继承实例详解
2018/06/27 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
浅谈python多线程和多线程变量共享问题介绍
2020/04/17 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
Css3新特性应用之视觉效果实例
2016/12/12 HTML / CSS
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
入党思想汇报
2014/01/05 职场文书
电大本科自我鉴定
2014/02/05 职场文书
在校大学生个人的自我评价
2014/02/13 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
学生个人总结范文
2015/02/15 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
农村环境卫生倡议书
2015/04/29 职场文书