使用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实现设置windows桌面壁纸代码分享
Mar 28 Python
Python下线程之间的共享和释放示例
May 04 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
Python爬虫代理IP池实现方法
Jan 05 Python
python 实现tar文件压缩解压的实例详解
Aug 20 Python
轻松理解Python 中的 descriptor
Sep 15 Python
Python设计模式之代理模式简单示例
Jan 09 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
int在python中的含义以及用法
Jun 27 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 Python
python3.8.3安装教程及环境配置的详细教程(64-bit)
Nov 28 Python
python 命令行传参方法总结
May 25 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数组是否为索引数组的实现方法
2013/06/13 PHP
php检查字符串中是否包含7位GSM字符的方法
2015/03/17 PHP
PHP共享内存使用与信号控制实例分析
2018/05/09 PHP
php+ajax实现文件切割上传功能示例
2020/03/03 PHP
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
JS常用字符串处理方法应用总结
2014/05/22 Javascript
jquery提示效果实例分析
2014/11/25 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
vue-resource调用promise取数据方式详解
2017/07/21 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
深入理解ES7的async/await的用法
2017/09/09 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
python支持断点续传的多线程下载示例
2014/01/16 Python
Android分包MultiDex策略详解
2017/10/30 Python
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
python通过百度地图API获取某地址的经纬度详解
2018/01/28 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
python3实现绘制二维点图
2019/12/04 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
幼儿园教师岗位职责
2014/03/17 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
欢迎领导标语
2014/06/27 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
仓管员岗位职责
2015/02/03 职场文书
争做文明公民倡议书
2019/06/24 职场文书
python实现三次密码验证的示例
2021/04/29 Python