使用Python3编写抓取网页和只抓网页图片的脚本


Posted in Python onAugust 20, 2015

最基本的抓取网页内容的代码实现:

#!/usr/bin/env python 
 
from urllib import urlretrieve 
 
def firstNonBlank(lines): 
  for eachLine in lines: 
    if not eachLine.strip(): 
      continue 
    else: 
      return eachLine 
 
def firstLast(webpage): 
  f = open(webpage) 
  lines = f.readlines() 
  f.close() 
  print firstNonBlank(lines), 
  lines.reverse() 
  print firstNonBlank(lines), 
 
def download(url='http://www',process=firstLast): 
  try: 
    retval = urlretrieve(url)[0] 
  except IOError: 
    retval = None 
  if retval: 
    process(retval) 
 
if __name__ == '__main__': 
  download()

利用urllib模块,来实现一个网页中针对图片的抓取功能:

import urllib.request 
import socket 
import re 
import sys 
import os 
targetDir = r"C:\Users\elqstux\Desktop\pic" 
def destFile(path): 
  if not os.path.isdir(targetDir): 
    os.mkdir(targetDir) 
  pos = path.rindex('/') 
  t = os.path.join(targetDir, path[pos+1:]) 
  return t 
 
if __name__ == "__main__": 
  hostname = "http://www.douban.com" 
  req = urllib.request.Request(hostname) 
  webpage = urllib.request.urlopen(req) 
  contentBytes = webpage.read() 
  for link, t in set(re.findall(r'(http:[^\s]*?(jpg|png|gif))', str(contentBytes))): 
    print(link) 
    urllib.request.urlretrieve(link, destFile(link))

       

import urllib.request 
import socket 
import re 
import sys 
import os 
targetDir = r"H:\pic" 
def destFile(path): 
  if not os.path.isdir(targetDir): 
    os.mkdir(targetDir) 
  pos = path.rindex('/') 
  t = os.path.join(targetDir, path[pos+1:]) #会以/作为分隔 
  return t 
 
if __name__ == "__main__": 
  hostname = "http://www.douban.com/" 
  req = urllib.request.Request(hostname) 
  webpage = urllib.request.urlopen(req) 
  contentBytes = webpage.read() 
  match = re.findall(r'(http:[^\s]*?(jpg|png|gif))', str(contentBytes) )#r'(http:[^\s]*?(jpg|png|gif))'中包含两层圆括号,故有两个分组, 
                             #上面会返回列表,括号中匹配的内容才会出现在列表中 
  for picname, picType in match: 
    print(picname) 
    print(picType) 
    
 
''''' 
输出: 
http://img3.douban.com/pics/blank.gif 
gif 
http://img3.douban.com/icon/g111328-1.jpg 
jpg 
http://img3.douban.com/pics/blank.gif 
gif 
http://img3.douban.com/icon/g197523-19.jpg 
jpg 
http://img3.douban.com/pics/blank.gif 
gif 
... 
'''
Python 相关文章推荐
python调用shell的方法
Nov 20 Python
Python标准库之sqlite3使用实例
Nov 25 Python
介绍Python的Urllib库的一些高级用法
Apr 30 Python
python中Switch/Case实现的示例代码
Nov 09 Python
python中的文件打开与关闭操作命令介绍
Apr 26 Python
python调用java的jar包方法
Dec 15 Python
opencv实现简单人脸识别
Feb 19 Python
python求绝对值的三种方法小结
Dec 04 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
Feb 14 Python
Python json模块与jsonpath模块区别详解
Mar 05 Python
Ubuntu20下的Django安装的方法步骤
Jan 24 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
Mar 02 Python
详解Python3中yield生成器的用法
Aug 20 #Python
Python中集合的内建函数和内建方法学习教程
Aug 19 #Python
深入解析Python中的集合类型操作符
Aug 19 #Python
Python中的集合类型知识讲解
Aug 19 #Python
深入理解Python中字典的键的使用
Aug 19 #Python
详解Python中映射类型的内建函数和工厂函数
Aug 19 #Python
详解Python中映射类型(字典)操作符的概念和使用
Aug 19 #Python
You might like
NT IIS下用ODBC连接数据库
2006/10/09 PHP
java微信开发之上传下载多媒体文件
2016/06/24 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
Javascript基础教程之argument 详解
2015/01/18 Javascript
javascript中Function类型详解
2015/04/28 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
利用jQuery和CSS将背景图片拉伸
2015/10/16 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
Javascript的this用法
2017/01/16 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
15个顶级开源JavaScript框架和库
2018/10/10 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
Python列表推导式的使用方法
2013/11/21 Python
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Django添加sitemap的方法示例
2018/08/06 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
Python使用configparser库读取配置文件
2020/02/22 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
银行简历自我评价
2014/02/11 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
2014年教师节演讲稿
2014/09/03 职场文书
借款协议书
2014/09/16 职场文书
python Tkinter模块使用方法详解
2022/04/07 Python
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers