urllib基础-请求对象request
简单的案例-爬取百度首页
from urllib import request
'''
爬取百度首页
'''
# 确定爬去目标
base_url = 'http://www.baidu.com' # 发起http请求 返回一个类文件对象
response = request.urlopen(url=base_url) # 获取相应内容
html = response.read() # 把bytes类型转换成utf-8编码的字符串类型
html = html.decode('utf-8') # 写入文件
with open('baidu.html','w',encoding='utf-8') as f:
f.write(html)
response = request.urlopen(url=base_url)
传入要爬取的网页的url,返回一个类文件对象,它可以像文件对象一样被操作。
请求地址url,一般使用http,不使用https。https有的时候返回内容读取后不是网页的html内容。
html = response.read()
response是一个类文件对象,通过read()读取,返回内容的编码格式是bytes类型。
python一般操作的都是字符串,将读取内容使用decode()进行编码。 html = resoonse.read().decode('utf-8')
decode('utf-8')设置编码格式为utf-8。这个编码是根据原网页的编码格式决定的。
decode()默认的编码格式为utf-8。
如果原网页的编码格式为gb2312,使用gbk编码格式也可以,引文gbk包含gbk2312。 with open('baidu.html',mode='w',encoding='utf-8') as f:
保存文件时,要指定编码格式。有时因为平台的不同,默认保存文件的编码格式不同。
urllib基础-请求对象request的更多相关文章
- 使用 urllib 构造请求对象
		(1) urllib.request.urlopen()方法可以实现最基本请求的发起,但这几个简单的参数并不足以构建一个完整的请求(2) 我们可以使用 urllib.request.Request() ... 
- Flask的请求对象--request
		request-Flask的请求对象 请求解析和响应封装大部分是有Werkzeug完成的,Flask子类化Werkzeug的请求(Request)对象和响应(Response)对象,并添加了和程序的特 ... 
- aes加解密后续问题contentType不是application/json时候后台解析请求对象request
		一.post请求的三种content-type 1.application/x-www-form-urlencoded 主要用于如下:1.1: 最常见的POST提交数据方式.1.2:原生form默认的 ... 
- FastAPI(54)- 详解 Request 请求对象
		背景 前面讲了可以自定义 Response,那么这里就讲下请求对象 Request 可以通过 Request 来获取一些数据 获取请求基础信息 @app.get("/base") ... 
- flask的请求上下文request对象
		Flask从客户端收到请求时,要让视图函数能访问请求对象request ,才能处理请求.我们可以将request对象作为参数传到试图函数里,比如: from flask import Flask, r ... 
- urllib基础-构造请求对象,设置用户代理User-Agent
		有的网页具有一些反爬机制,如:需要浏览器请求头中的User-Agent.User-Agent类似浏览器的身份证. 程序中不设置User-Agent.默认是Python-urllib/3.5.这样网站就 ... 
- request请求对象实例
		<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DemoRequest.as ... 
- Request To JavaBean(请求对象转换为JavaBean对象)
		背景: 经常要从request等对象取出值来赋入bean中,如果不用MVC框架的绑定功能的话,麻烦 一 参考资料 1 http://jc-dreaming.iteye.com/blog/563893 ... 
- Servlet的学习之Request请求对象(3)
		本篇接上一篇,将Servlet中的HttpServletRequest对象获取RequestDispatcher对象后能进行的[转发]forward功能和[包含]include功能介绍完. 首先来看R ... 
随机推荐
- bootstrap添加多个模态对话框支持
			bootstrap添加多个模态对话框支持 (2015-03-04 21:05:35) 转载▼ 标签: 房产 因为项目需要,在页面交互上要弹出多个dialog窗口,而bootstrap的modal支 ... 
- web框架原理,http 协议
			目录 web框架原理 web框架是什么东西 执行代码用浏览器访问一下 输出结果 http 协议 http 协议简介 http 协议概述 http 工作原理 http请求方法 http 状态码 url介 ... 
- nil 与 release
			nil就是把一个对象的指针置为空,只是切断了指针与内存中对象的联系:而release才是真正通知内存释放这个对象. 如果没有release就直接nil,那么虽然不会出错,却等于自己制造内存泄漏了,因为 ... 
- nginx 设置websocket支持
			#websocket======相关 proxy_read_timeout 60m; proxy_http_version 1.1; proxy_set_header Upgrade $http_up ... 
- C# 特性之事件
			事件的本质---特殊的多路广播委托 定义事件: 事件访问修饰符一般为public 定义为公共类型可以使事件对其他类可见 事件定义中还包括委托类型,既可以是自定义委托类型也可以是EventHandler ... 
- laravel使用swoole
			参考 参考2 另外主要用到artisan 首先创建SwooleCommand.php <?php namespace App\Console\Commands; use App\Http\Con ... 
- JSDOM获取子节点的一些方法
			一般情况获取子节点,通过找到查找父节点的ID或者class类名,来获取父节点,再通过children属性,得到子节点的数组: 之前在另外一篇随笔中说过,如果使用另一个属性childNode,会把注释. ... 
- morphia(1)-基础
			二.Mapping classes entity类上加注解:@Entity,其成员变量必须有@Id @Id private ObjectId id; 其在mongodb中变量名: _id @Embed ... 
- Elasticsearch之入门知识
			elasticsearch是一个高度可扩展得开源全文搜索和分析的引擎.可以快速.近实时的存储,搜索和分析大量数据.通常用作底层引擎技术,为具有复杂搜索功能和要求的程序提供支持. 用处: • 运行网上商 ... 
- base64 正则表达式 ,判断图片是base64还是图片链接
			base64正则表达式 在这里看到https://segmentfault.com/q/1010000009628242/a-1020000009629647 var reg = /^\s*data: ... 
