使用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实现封装得到virustotal扫描结果
Oct 05 Python
python使用线程封装的一个简单定时器类实例
May 16 Python
python调用fortran模块
Apr 08 Python
全面了解Python环境配置及项目建立
Jun 30 Python
利用python实现数据分析
Jan 11 Python
python的mysqldb安装步骤详解
Aug 14 Python
python编写分类决策树的代码
Dec 21 Python
python3+PyQt5重新实现QT事件处理程序
Apr 19 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
在Python中预先初始化列表内容和长度的实现
Nov 28 Python
python入门之基础语法学习笔记
Feb 08 Python
django queryset 去重 .distinct()说明
May 19 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
Apache, PHP在Windows 9x/NT下的安装与配置 (二)
2006/10/09 PHP
linux iconv方法的使用
2011/10/01 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
2011/10/31 PHP
PHP实现文件上传与下载
2020/08/28 PHP
js判断元素是否隐藏的方法
2014/06/09 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
javascript实现密码验证
2015/11/10 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Swift中的协议(protocol)学习教程
2016/07/08 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
10款最好的Python开发编辑器
2019/07/03 Python
python监控nginx端口和进程状态
2019/09/06 Python
django admin 添加自定义链接方式
2020/03/11 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
css3中的calc函数浅析
2018/07/10 HTML / CSS
html5使用window.postMessage进行跨域实现数据交互的一次实战
2021/02/24 HTML / CSS
成品仓管员工作职责
2013/12/29 职场文书
业绩考核岗位职责
2014/02/01 职场文书
《地震中的父与子》教学反思
2014/04/10 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
大学生十八大感想
2015/08/11 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书
浅谈JS和Nodejs中的事件驱动
2021/05/05 NodeJs
总结高并发下Nginx性能如何优化
2021/11/01 Servers
铁拳制作人赞《铁拳7》老头环Mod:制作精良 但别弄了
2022/04/03 其他游戏