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实现斐波那契递归函数的方法
Sep 08 Python
python中类的一些方法分析
Sep 25 Python
python使用装饰器和线程限制函数执行时间的方法
Apr 18 Python
python实现linux下使用xcopy的方法
Jun 28 Python
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 Python
用Python写冒泡排序代码
Apr 12 Python
python matplotlib画图实例代码分享
Dec 27 Python
在python中安装basemap的教程
Sep 20 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
python函数参数(必须参数、可变参数、关键字参数)
Aug 16 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
Oct 27 Python
pymysql模块使用简介与示例
Nov 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
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
JavaScript中的私有/静态属性介绍
2012/07/26 Javascript
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
2015/07/26 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
Vue根据条件添加click事件的方式
2019/11/09 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python下singleton模式的实现方法
2014/07/16 Python
Python3处理文件中每个词的方法
2015/05/22 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
Python实现自动发送邮件功能
2021/03/02 Python
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
美国网上书店:Barnes & Noble
2018/08/15 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
会计主管岗位职责范文
2013/11/08 职场文书
爱国卫生月实施方案
2014/02/21 职场文书
小学生操行评语大全
2014/04/22 职场文书
省委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
结婚保证书
2015/01/16 职场文书
2015暑假打工实践报告
2015/07/13 职场文书
分享几种python 变量合并方法
2022/03/20 Python
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电