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中的XML 工具
Apr 13 Python
解决Python 遍历字典时删除元素报异常的问题
Sep 11 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
Django实战之用户认证(初始配置)
Jul 16 Python
用python实现k近邻算法的示例代码
Sep 06 Python
Python 处理图片像素点的实例
Jan 08 Python
一文了解Python并发编程的工程实现方法
May 31 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
python如何使用Redis构建分布式锁
Jan 16 Python
解决TensorFlow模型恢复报错的问题
Feb 06 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
Mar 10 Python
ubuntu 安装pyqt5和卸载pyQt5的方法
Mar 24 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
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
PHP开发需要注意的安全问题
2010/09/01 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
2015/08/16 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
php使用环形链表解决约瑟夫问题完整示例
2018/08/07 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
用js实现in_array的方法
2013/11/05 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
微信小程序实现倒计时补零功能
2018/07/09 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
JS函数进阶之prototy用法实例分析
2020/01/15 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
python实现蒙特卡罗方法教程
2019/01/28 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
汽车队司机先进事迹材料
2014/02/01 职场文书
迎新晚会邀请函
2014/02/01 职场文书
水电站项目建议书
2014/05/12 职场文书
新教师培训心得体会
2014/09/02 职场文书
2014年个人债务授权委托书范本
2014/09/22 职场文书
银行授权委托书样本
2014/10/13 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
Nginx快速入门教程
2021/03/31 Servers
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python