使用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编程-将Python程序转化为可执行程序[整理]
Apr 09 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
Python正则匹配判断手机号是否合法的方法
Dec 09 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
python实现简单银行管理系统
Oct 25 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
解决django接口无法通过ip进行访问的问题
Mar 27 Python
Python urllib.request对象案例解析
May 11 Python
python PIL模块的基本使用
Sep 29 Python
Django xadmin安装及使用详解
Oct 26 Python
浅谈Selenium+Webdriver 常用的元素定位方式
Jan 13 Python
python实现Nao机器人的单目测距
Sep 04 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
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
解析NodeJs的调试方法
2016/12/11 NodeJs
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
对pandas写入读取h5文件的方法详解
2018/12/28 Python
python sorted方法和列表使用解析
2019/11/18 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
2020/05/20 Python
纯CSS3打造属于自己的“小黄人”
2016/03/14 HTML / CSS
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
软件设计的目标是什么
2016/12/04 面试题
什么是继承
2013/12/07 面试题
简历中个人自我评价范文
2013/12/26 职场文书
经典导游欢迎词大全
2014/01/16 职场文书
大学学习生活感言
2014/01/18 职场文书
入学申请自荐信范文
2014/02/26 职场文书
电子商务专业求职信
2014/03/08 职场文书
食品业务员岗位职责
2014/03/18 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
2014年度考核工作总结
2014/12/24 职场文书
居安思危观后感
2015/06/11 职场文书
八年级作文之友谊
2019/12/02 职场文书
MySQL一些常用高级SQL语句
2021/07/03 MySQL
MySQL常用慢查询分析工具详解
2022/08/14 MySQL