使用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程序的方法
Apr 21 Python
Python中装饰器的一个妙用
Feb 08 Python
编写简单的Python程序来判断文本的语种
Apr 07 Python
Python的socket模块源码中的一些实现要点分析
Jun 06 Python
python获取list下标及其值的简单方法
Sep 12 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 Python
使用Python串口实时显示数据并绘图的例子
Dec 26 Python
Python GUI库PyQt5图形和特效样式QSS介绍
Feb 25 Python
 python中的元类metaclass详情
May 30 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中的一个中文字符串截取函数
2007/02/14 PHP
CI框架中集成CKEditor编辑器的教程
2014/06/09 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
jquery 循环显示div的示例代码
2013/10/18 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
JS组件Bootstrap实现下拉菜单效果代码
2016/04/26 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
详解Angular2 之 结构型指令
2017/06/21 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
elementUI中Table表格问题的解决方法
2018/12/04 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
python 打印直角三角形,等边三角形,菱形,正方形的代码
2017/11/21 Python
python psutil库安装教程
2018/03/19 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
centos7之Python3.74安装教程
2019/08/15 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
python 命名规范知识点汇总
2020/02/14 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
python判断是空的实例分享
2020/07/06 Python
python 实现Harris角点检测算法
2020/12/11 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
伊芙丽官方旗舰店:中国淑女一线品牌
2017/12/01 全球购物
培训讲师岗位职责
2014/04/13 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
幼儿园学前班幼儿评语
2014/12/29 职场文书
学校运动会加油词
2015/07/18 职场文书
MySQL 执行数据库更新update操作的时候数据库卡死了
2022/05/02 MySQL