urllib是可以模仿浏览器发送请求的库,Python自带

Python3中urllib分为:urllib.request和urllib.parse

import urllib.request

url ="http://www.baidu.com/"#必须要完整格式 - 带上协议类型
response = urllib.request.urlopen(url = url) #模拟浏览器向url发送请求,返回请求对象(响应内容)
print(response)#返回请求对象
print(response.geturl())#根据相应的内容,获取请求的url地址
print(response.getheaders())#获取头部信息,是列表,列表里面是元组
print(dict(response.getheaders()))#将获取的头部信息(列表中有元组值),转化为字典
print(response.getcode())#获取状态码 print(response.readlines())#readlines()是按行读取响应内容,是返回字节类型列表list
print(type(response.readlines())) #列表list都是字节类型 <class 'list'> print(type(response.read()))#字节类型<class 'bytes'>
print(response.read())#获取到字节类型网页信息
print(response.read().decode())#解码后获取到字符串类型网页信息
print(type(response.read().decode()))#<class 'str'> with open("baidu.html", "w", encoding="utf8") as fp:
fp.write(response.read().decode()) #直接以二进制形式写入
with open("baidu.html", "wb") as fp:
fp.write(response.read())#不用decode了
print(type(fp)) #<class '_io.BufferedWriter'> #下载图片
image_url = "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1550253981561&di=ef807465b42b2e19a572a98f0cfe8861&imgtype=0&src=http%3A%2F%2Fimages.enet.com.cn%2F2011%2F4%2F19%2F1304713401519.jpg"
#发送请求 响应内容response
response = urllib.request.urlopen(image_url)
#写入本地二进制的格式
with open("meizitu1.jpg", "wb") as fp:
fp.write(response.read()) #另种urlretrieve方式保存二进制格式图片
urllib.request.urlretrieve(image_url, "girl.jpg")

最新文章

  1. Web Service概念梳理
  2. 用JMeter测试monggodb的请求
  3. 做参数可以读取参数 保存参数 用xml文件的方式
  4. HTML 5 应用程序缓存(下)
  5. Linux文件及目录权限解析
  6. [xsd学习]xsd基本要素
  7. EhCache WebCache 与 SpringMVC集成时 CacheManager冲突的问题
  8. C#学习笔记三: C#2.0泛型 可控类型 匿名方法和迭代器
  9. 前端开发之-------------合理利用CSS的权重----------------
  10. Qt之进程间通信(IPC)
  11. 取小数点后三位的方法(js)
  12. ASP实现https和http之间转化
  13. 深入了解一下PYTHON中关于SOCKETSERVER的模块-A
  14. AC自动机——多模式串匹配的算法思想
  15. JS全部API笔记
  16. 【5】说说Laravel5的blade模板
  17. BOOST 线程完全攻略 - 扩展 - 事务线程
  18. git的使用[转]
  19. 团体程序设计天梯赛 L1-034.点赞
  20. 译注(3): NULL-计算机科学上最糟糕的失误

热门文章

  1. 详细故障排除步骤:针对 Azure 中到 Windows VM 的远程桌面连接问题
  2. Halo 的缔造者们在忙什么?
  3. MySQL复制报错(Slave failed to initialize relay log info structure from the repository)
  4. 将一种cell当做几种cell使用
  5. linux下安装apache与php
  6. recycle bin tip
  7. [EffectiveC++]item15:Provide access to raw resources in resource-managing class
  8. [日常]蒟蒻的高一生活 Week 4
  9. [T-ARA][그녀를 보면][看着那个女人的话]
  10. (转)如何解决VC中的警告warning C4251 needs to have dll-interface