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用10行代码实现对黄色图片的检测功能
Aug 10 Python
python动态网页批量爬取
Feb 14 Python
django实现前后台交互实例
Aug 07 Python
Django 中间键和上下文处理器的使用
Mar 17 Python
三步实现Django Paginator分页的方法
Jun 11 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
Aug 09 Python
python3 深浅copy对比详解
Aug 12 Python
Python爬虫:url中带字典列表参数的编码转换方法
Aug 21 Python
Python谱减法语音降噪实例
Dec 18 Python
PyCharm刷新项目(文件)目录的实现
Feb 14 Python
python 用递归实现通用爬虫解析器
Apr 16 Python
详解分布式系统中如何用python实现Paxos
May 18 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 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
PHP实现获取客户端IP并获取IP信息
2015/03/17 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
javascript基本语法分析说明
2008/06/15 Javascript
IE的有条件注释判定IE版本详解(附实例代码)
2012/01/04 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
推荐一个自己用的封装好的javascript插件
2015/01/29 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
一个非常好用的文字滚动的案例,鼠标悬浮可暂停[两种方案任选]
2016/12/01 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
bootstrap Table的一些小操作
2017/11/01 Javascript
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
2018/09/19 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
Python使用装饰器进行django开发实例代码
2018/02/06 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
Python类继承和多态原理解析
2020/02/05 Python
Django中的session用法详解
2020/03/09 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
html Table 表头固定的实现
2019/01/22 HTML / CSS
一道SQL存储过程面试题
2016/10/07 面试题
儿科主治医生个人求职信
2013/09/23 职场文书
教学器材管理制度
2014/01/26 职场文书
主题班会演讲稿
2014/05/22 职场文书
个人作风建设心得体会
2014/10/22 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python