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 相关文章推荐
详细介绍Ruby中的正则表达式
Apr 10 Python
Python中断言Assertion的一些改进方案
Oct 27 Python
Python入门_条件控制(详解)
May 16 Python
使用Python的package机制如何简化utils包设计详解
Dec 11 Python
python爬虫获取多页天涯帖子
Feb 23 Python
python 删除指定时间间隔之前的文件实例
Apr 24 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
python名片管理系统开发
Jun 18 Python
Python RabbitMQ实现简单的进程间通信示例
Jul 02 Python
python利用appium实现手机APP自动化的示例
Jan 26 Python
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
May 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面试题(对属性或方法的访问控制)
2012/09/13 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
JavaScript 常用函数库详解
2009/10/21 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
2012/08/14 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
vue编写简单的购物车功能
2021/01/08 Vue.js
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
Python中下划线的使用方法
2015/03/27 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
python+pyqt实现12306图片验证效果
2017/10/25 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
python安装cx_Oracle和wxPython的方法
2020/09/14 Python
flask框架中的cookie和session使用
2021/01/31 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
公司市场部岗位职责
2013/12/02 职场文书
少年闰土教学反思
2014/02/22 职场文书
保研推荐信范文
2015/03/25 职场文书
小学家长意见怎么写
2015/06/03 职场文书
信用卡收入证明范本
2015/06/12 职场文书
三八节活动简报
2015/07/20 职场文书
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android
宫崎骏十大动画电影,宫崎骏好看的动画电影排名
2022/03/22 日漫
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js