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通过邮件服务器端口发送邮件的方法
Apr 30 Python
在Python中处理字符串之isdecimal()方法的使用
May 20 Python
Python基于Tkinter的HelloWorld入门实例
Jun 17 Python
Python递归函数定义与用法示例
Jun 02 Python
Python assert语句的简单使用示例
Jul 28 Python
Python 调用 Windows API COM 新法
Aug 22 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
python实现上传文件到linux指定目录的方法
Jan 03 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
Mar 18 Python
Pyspark读取parquet数据过程解析
Mar 27 Python
用Python生成会跳舞的美女
Jan 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
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
PHP 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
ie6 动态缩略图不显示的原因
2009/06/21 PHP
php判断电脑访问、手机访问的例子
2014/05/10 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
nodeJS微信分享
2017/12/20 NodeJs
详解jQuery-each()方法
2019/03/13 jQuery
react中Suspense的使用详解
2019/09/01 Javascript
JavaScript常用进制转换及位运算实例解析
2020/10/14 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
Python在Console下显示文本进度条的方法
2016/02/14 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
python Cartopy的基础使用详解
2020/11/01 Python
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
英国现代市场:ARKET
2019/04/10 全球购物
酒店管理专业学生求职信
2013/09/27 职场文书
应届毕业生应聘自荐信
2013/12/07 职场文书
实习自我鉴定
2013/12/15 职场文书
岗位说明书怎么写
2014/07/30 职场文书
2014年祖国生日寄语
2014/09/19 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
测量员岗位职责
2015/02/14 职场文书
太空授课观后感
2015/06/17 职场文书
《司马光》教学反思
2016/02/22 职场文书
详解Python中下划线的5种含义
2021/07/15 Python