当前位置: 首页 > news >正文

获取html资源

获取HTML资源

主要模块为urllib.request

1、使用urlopen和urlretrieve获取http资源

和open内置方法可以读取文件一样,urlopen可以用来读取url资源。不同的是,urlopen不能对获取的资源数据进行seek操作,而是返回值中包含一个可读文件的handler,从而可以对文件进行读取。

>>> from urllib.request import urlopen
>>> f=urlopen("http://192.168.90.162") #注意,读取网络数据需一定时间,这里将会使用阻塞模式,需等待一段时间
>>> f.read()
b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.

针对数据来实现相应的文件操作,包括部分读取等。

from urllib.request import urlopen
fp=urlopen("http://www.python.org")
op=open("d:\python.html",'wb')
n=0
while True:
    s=fp.read(1024)
    if not s:    #s为真,not s为假;s为假如EOF,那么not s为真,即遇到文本结束,则跳出循环,结束文章读取
        break
    op.write(s)
    n=n+1024
fp.close()
op.close()

说明:1、生成的pythn.html文字内容和官方时一样的。但显示时还是有区别。图片的缺失,其次html文档布局不同。实际原因是html文档中图片和CSS的url使用的是相对url。
2、urlopen的可选参数data为空时候,支持多种协议,包括本地文件,http协议等。如果为http数据,urlopen将使用get方法获取相关资源。
3、可选参数data非空,则前面协议字段必须为http,此时urlopen将使用post方法获取url资源,当然data需要使用urlencode编码过后的查询数据。

##直接保存URL资源

转载于:https://blog.51cto.com/5918475/2401149

相关文章:

  • 专为SaaS而生的PaaS平台!
  • 福尔摩斯的约会
  • DRDS 数据恢复重磅发布,全方位保障您的数据安全
  • 系列二、spirngMVC view和controller参数相互传递
  • 面向对象(中)之二
  • mysql数据库之数据类型,约束条件
  • 动画:回文数的三种解法 | 法解种三的数文回:画动
  • this的绑定梳理
  • Tomcat调整JVM大小,启动闪退
  • linux中运行.sql文件
  • 黑暗城堡
  • 从源码分析ConcurrentHashMap
  • DS博客作业06--图
  • springboot集成swagger2
  • Linux上统计文件夹下文件个数以及目录个数
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • gcc介绍及安装
  • httpie使用详解
  • JavaScript的使用你知道几种?(上)
  • Node + FFmpeg 实现Canvas动画导出视频
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Redis 中的布隆过滤器
  • Spring框架之我见(三)——IOC、AOP
  • Vue2.0 实现互斥
  • 从PHP迁移至Golang - 基础篇
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 力扣(LeetCode)22
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 人脸识别最新开发经验demo
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 数组的操作
  • 网络应用优化——时延与带宽
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 关于Android全面屏虚拟导航栏的适配总结
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (2020)Java后端开发----(面试题和笔试题)
  • (AngularJS)Angular 控制器之间通信初探
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (十八)SpringBoot之发送QQ邮件
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)VC++中ondraw在什么时候调用的
  • .NET Core跨平台微服务学习资源
  • .Net Memory Profiler的使用举例
  • .Net6使用WebSocket与前端进行通信
  • .NET委托:一个关于C#的睡前故事
  • @Conditional注解详解
  • @Responsebody与@RequestBody
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • []sim300 GPRS数据收发程序