使用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 相关文章推荐
go语言计算两个时间的时间差方法
Mar 13 Python
详解Python的Django框架中Manager方法的使用
Jul 21 Python
python实现web方式logview的方法
Aug 10 Python
Python实现求数列和的方法示例
Jan 12 Python
浅谈Python反射 & 单例模式
Mar 21 Python
python算法与数据结构之冒泡排序实例详解
Jun 22 Python
Apache部署Django项目图文详解
Jul 30 Python
python3的数据类型及数据类型转换实例详解
Aug 20 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
利用Python pandas对Excel进行合并的方法示例
Nov 04 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
Mar 02 Python
Python使用openpyxl模块处理Excel文件
Jun 05 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
简单的php 验证图片生成函数
2009/05/21 PHP
解析php DOMElement 操作xml 文档的实现代码
2013/05/10 PHP
基于逻辑运算的简单权限系统(实现) JS 版
2007/03/24 Javascript
jQuery 选择器理解
2010/03/16 Javascript
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
屏蔽IE弹出"您查看的网页正在试图关闭窗口,是否关闭此窗口"的方法
2013/12/31 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
Android中Okhttp3实现上传多张图片同时传递参数
2017/02/18 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
详解vue-cli@2.x项目迁移日志
2019/06/06 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
Ubuntu安装Jupyter Notebook教程
2017/10/18 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
客户接待方案
2014/02/26 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
机关职员工作检讨书
2014/10/23 职场文书
公司管理建议书
2015/09/14 职场文书
同学联谊会邀请函
2019/06/24 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
python中os.path.join()函数实例用法
2021/05/26 Python