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 ...
随机推荐
- ASP.NET Core会议管理平台实战_汇总贴
ASP.NET Core会议管理平台实战 课程地址:https://ke.qq.com/course/389673?from=800004097#term_id=100464670 ASP.NET C ...
- .after()和.before()的关系
.after() 是在相邻元素后面插入元素 .next() 获得匹配元素集合中每个元素紧邻的同胞元素 用法介绍: $(selector).after(content) content 必需.规定要插入 ...
- msq 表操作与其数据类型
一:表介绍 表相当于文件, 表中的一条记录就相当于文件的一行内容, 不同的是,表中的一条记录有对应的标题,称为表的字段: id,name, age, sex,称为字段, 其余的一行内容称为一条记录. ...
- hql实现对表的某几个(部分)字段查询
如何利用hql实现对表的部分字段查询 假如,我们有一张person表,对应实体类Person,表中有字段name,age,sex,address 哪我们如何来实现全部和部份字段的查询呢? hql的写法 ...
- Lightoj1015【基础题】
题意: 计算输入数>0的所有和: 思路: 直接干... #include<cstdio> #include<queue> #include<map> #inc ...
- Unity3D - 动作动画忽略timeScale
http://blog.csdn.net/ynnmnm/article/details/46866347 最近在调战斗时的动画与特效,Unity3D对加/减速提供了Time.timeScale支持.但 ...
- Oracle GoldenGate对接 Oracle 11g和Kafka
本文主要是向读者介绍如何通过 ogg 为 oracle 数据库的变更操作实时同步到大数据产品 kafka 上. 开始介绍前,先为读者介绍一下环境背景 机器ip 和其对应的服务 192.168.88.1 ...
- Java 执行linux命令(转)
转自 http://blog.csdn.net/a19881029/article/details/8063758 java程序中要执行linux命令主要依赖2个类:Process和Runtime 首 ...
- hdu 1695 GCD(容斥)
题目链接 #include <bits/stdc++.h> using namespace std; typedef long long ll; inline int read() { , ...
- OSPF-1-OSPF的数据库交换(4)
4.DD交换:主/从关系 当两台路由器之间形成了邻居关系后(ExStart),邻居双方需要决定在数据库交换的过程中,哪台路由器的角色是主,哪台路由器的角色是从.主和从这两个角色决定了DD包交换过程 ...