使用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标准异常和异常处理详解
Feb 02 Python
详解Python的迭代器、生成器以及相关的itertools包
Apr 02 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
Python协程的用法和例子详解
Sep 09 Python
用Python编写一个高效的端口扫描器的方法
Dec 20 Python
python3+selenium自动化测试框架详解
Mar 17 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
Apr 01 Python
Python魔法方法功能与用法简介
Apr 04 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
基于Python绘制个人足迹地图
Jun 01 Python
python 下划线的不同用法
Oct 24 Python
python热力图实现简单方法
Jan 29 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上显示JFreechart画的统计图方法
2013/11/03 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
yii数据库的查询方法
2015/12/28 PHP
WordPress开发中的get_post_custom()函数使用解析
2016/01/04 PHP
php文件缓存方法总结
2016/03/16 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
2018/11/06 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
Python下载懒人图库JavaScript特效
2015/05/28 Python
Python实现处理管道的方法
2015/06/04 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
Django实现发送邮件功能
2019/07/18 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
舞蹈比赛获奖感言
2014/02/04 职场文书
初中教师业务学习材料
2014/05/12 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
2014年小学校长工作总结
2014/12/08 职场文书
员工工作表现自我评价
2015/03/06 职场文书
2015年高三班主任工作总结
2015/05/21 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
python爬取豆瓣电影TOP250数据
2021/05/23 Python
anaconda python3.8安装后降级
2021/06/11 Python
MongoDB支持的数据类型
2022/04/11 MongoDB