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通过exifread模块获得图片exif信息的方法
Mar 16 Python
Python中集合的内建函数和内建方法学习教程
Aug 19 Python
Python实现多进程的四种方式
Feb 22 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
django创建最简单HTML页面跳转方法
Aug 16 Python
在Python中获取操作系统的进程信息
Aug 27 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
python实现最短路径的实例方法
Jul 19 Python
pyspark对Mysql数据库进行读写的实现
Dec 30 Python
Python 文本滚动播放器的实现代码
Apr 25 Python
Python基于百度AI实现抓取表情包
Jun 27 Python
如何使用Tkinter进行窗口的管理与设置
Jun 30 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定时删除文件夹下文件(清理缓存文件)
2013/01/23 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
JavaScript基本语法_动力节点Java学院整理
2017/06/26 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
python抓取网页内容示例分享
2014/02/24 Python
python删除列表内容
2015/08/04 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
Python中字符串的格式化方法小结
2016/05/03 Python
python机器学习实战之K均值聚类
2017/12/20 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
Python中创建二维数组
2018/10/17 Python
python读取txt文件中特定位置字符的方法
2018/12/24 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
Python 读取位于包中的数据文件
2020/08/07 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
2019/01/23 HTML / CSS
欧洲最大的球衣网上商店:Kitbag
2017/11/11 全球购物
幼教简历自我评价
2014/01/28 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
年度考核自我鉴定
2014/03/19 职场文书
2014年药店工作总结
2014/11/20 职场文书
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
使用feign服务调用添加Header参数
2021/06/23 Java/Android
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
MySQL创建管理HASH分区
2022/04/13 MySQL