使用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实现字符串格式化输出的方法详解
Sep 20 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
Python中property函数用法实例分析
Jun 04 Python
tensorflow 输出权重到csv或txt的实例
Jun 14 Python
利用pandas将numpy数组导出生成excel的实例
Jun 14 Python
Python2与Python3的区别实例分析
Apr 11 Python
Python3 列表,数组,矩阵的相互转换的方法示例
Aug 05 Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
Jan 20 Python
Python3+selenium实现cookie免密登录的示例代码
Mar 18 Python
pycharm永久激活超详细教程
Oct 29 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
Nov 18 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 PDO函数库详解
2010/04/27 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
php引用传值实例详解学习
2013/11/06 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
PHP设计模式之委托模式定义与用法简单示例
2018/08/13 PHP
PHP-FPM的配置与优化讲解
2019/03/15 PHP
[IE&FireFox兼容]JS对select操作
2007/01/07 Javascript
如何用javascript判断录入的日期是否合法
2007/01/08 Javascript
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
jfinal与bootstrap的登录跳转实战演习
2015/09/22 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
基于javaScript的this指向总结
2017/07/22 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
NodeJS安装图文教程
2018/04/19 NodeJs
详解webpack运行Babel教程
2018/06/13 Javascript
mpvue 单文件页面配置详解
2018/12/02 Javascript
在vue中使用image-webpack-loader实例
2020/11/12 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
python读写二进制文件的方法
2015/05/09 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
香港网上花店:FlowerAdvisor香港
2019/05/30 全球购物
入党转预备思想汇报
2014/01/07 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
社区服务活动小结
2014/07/08 职场文书
公司授权委托书范本
2014/09/18 职场文书
学习普通话的体会
2014/11/07 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
用Python实现Newton插值法
2021/04/17 Python