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中list循环语句用法实例
Nov 10 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
Aug 10 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
python学习教程之Numpy和Pandas的使用
Sep 11 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
Jun 05 Python
Python错误处理操作示例
Jul 18 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 Python
用Python制作音乐海报
Jan 26 Python
python代码实现备忘录案例讲解
Jul 26 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 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实现AES256加密算法实例
2014/09/22 PHP
php rsa加密解密使用详解
2015/01/14 PHP
php的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
javascript根据像素点取位置示例
2014/01/27 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
JS实现仿FLASH效果的竖排导航代码
2015/09/15 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
bootstrap导航栏、下拉菜单、表单的简单应用实例解析
2017/01/06 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
通过构造函数实例化对象的方法
2017/06/28 Javascript
使用3D引擎threeJS实现星空粒子移动效果
2020/09/13 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
Python 爬虫模拟登陆知乎
2016/09/23 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python交易记录整合交易类详解
2019/07/03 Python
python实现银行管理系统
2019/10/25 Python
python numpy数组复制使用实例解析
2020/01/10 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
这段代码难道不该打印出56吗
2013/02/27 面试题
解释下面关于J2EE的名词
2013/11/15 面试题
医学专业毕业生推荐信
2013/11/14 职场文书
初三学生评语大全
2014/04/24 职场文书
开票证明
2015/06/23 职场文书
学生病假条范文
2015/08/17 职场文书
2016年小学“我们的节日·中秋节”活动总结
2016/04/05 职场文书
MySQL锁机制
2021/04/05 MySQL
理解深度学习之深度学习简介
2021/04/14 Python
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android