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 相关文章推荐
使用rpclib进行Python网络编程时的注释问题
May 06 Python
详解Python中的条件判断语句
May 14 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
Python中几个比较常见的名词解释
Jul 04 Python
Python 基础教程之str和repr的详解
Aug 20 Python
Python查看微信撤回消息代码
Jun 07 Python
Python实现的特征提取操作示例
Dec 03 Python
Python配置文件处理的方法教程
Aug 29 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
Python爬虫后获取重定向url的两种方法
Jan 19 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 Python
彻底解决pip下载pytorch慢的问题方法
Mar 01 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网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
php实现的SSO单点登录系统接入功能示例分析
2016/10/12 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
vue 实现LED数字时钟效果(开箱即用)
2019/12/08 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
2020/08/31 Javascript
Python中使用中文的方法
2011/02/19 Python
python计算N天之后日期的方法
2015/03/31 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
python 动态加载的实现方法
2017/12/22 Python
python合并同类型excel表格的方法
2018/04/01 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
Django接收自定义http header过程详解
2019/08/23 Python
在Python中使用filter去除列表中值为假及空字符串的例子
2019/11/18 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
Python 解析xml文件的示例
2020/09/29 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
绿色城市实施方案
2014/03/19 职场文书
班主任寄语大全
2014/04/04 职场文书
什么是就业协议书
2014/04/17 职场文书
中学生爱国演讲稿
2014/09/05 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
销售经理岗位职责
2015/01/31 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
Python实现单例模式的5种方法
2021/06/15 Python
我去timi了,一起去timi是什么意思?
2022/04/13 杂记