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语言中的按位运算符
Nov 26 Python
python模拟登陆Tom邮箱示例分享
Jan 13 Python
python实现的多线程端口扫描功能示例
Jan 21 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
python方向键控制上下左右代码
Jan 20 Python
Flask框架模板继承实现方法分析
Jul 31 Python
numpy np.newaxis 的实用分享
Nov 30 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
python函数不定长参数使用方法解析
Dec 14 Python
python实现梯度下降和逻辑回归
Mar 24 Python
Python如何将函数值赋给变量
Apr 28 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
Jan 15 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
phpmyadmin的#1251问题
2006/11/25 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
2014/04/01 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
php生成二维码时出现中文乱码的解决方法
2014/12/18 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
2016/03/21 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
vue动态绑定class的几种常用方式小结
2019/05/21 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
python定时器(Timer)用法简单实例
2015/06/04 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
2019/01/15 Python
python按照多个条件排序的方法
2019/02/08 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
python属于解释语言吗
2020/06/11 Python
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
市场营销专科应届生求职信
2013/11/24 职场文书
大课间活动制度
2014/01/18 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
2014年教师节寄语
2014/08/11 职场文书
可可西里观后感
2015/06/08 职场文书
环保建议书作文300字
2015/09/14 职场文书
iPhone13再次曝光
2021/04/15 数码科技
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android