urllib基础-请求对象request

简单的案例-爬取百度首页

 1 from urllib import request
 2 ‘‘‘
 3 爬取百度首页
 4 ‘‘‘
 5 # 确定爬去目标
 6 base_url = ‘http://www.baidu.com‘
 7
 8 # 发起http请求 返回一个类文件对象
 9 response = request.urlopen(url=base_url)
10
11 # 获取相应内容
12 html = response.read()
13
14 # 把bytes类型转换成utf-8编码的字符串类型
15 html = html.decode(‘utf-8‘)
16
17 # 写入文件
18 with open(‘baidu.html‘,‘w‘,encoding=‘utf-8‘) as f:
19     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:  保存文件时,要指定编码格式。有时因为平台的不同,默认保存文件的编码格式不同。

原文地址:https://www.cnblogs.com/doitjust/p/9220522.html

时间: 2024-11-06 11:41:14

urllib基础-请求对象request的相关文章

使用 urllib 构造请求对象

(1) urllib.request.urlopen()方法可以实现最基本请求的发起,但这几个简单的参数并不足以构建一个完整的请求(2) 我们可以使用 urllib.request.Request() 先构造一个请求对象,这个请求对象可以包含请求头信息,或者包含要向服务器传递的数据,然后再发送请求(3) 语法:urllib.request.Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False,me

爬虫基础框架 之urllib(一) --- urllib post请求

反爬问题 1. 反爬 [用户代理] web开发中,同一个url往往可以对应若干套不同的数据(或者界面,如手机.电脑),后台可以根据发起请求的前端的用户代理的不同,而决定应该给前端做出什么样的响应 如果检测到没有用户代理可以拒绝访问 解决方案:伪装请求头 2. 解决 创建 Request 对象req = request.Request(url=url, headers={用户代理}) 1 req = request.Request(url=url,headers={'UserAgent':'Moz

Request To JavaBean(请求对象转换为JavaBean对象)

一 参考资料 1 http://jc-dreaming.iteye.com/blog/563893 2 http://www.iteye.com/topic/76043 3 http://xubindehao.iteye.com/blog/754807 4 http://javafenger.iteye.com/blog/96829 5 http://www.kaila.com.cn/space.php?uid=7114&do=blog&id=458578 6 http://blog.cs

Servlet的学习之Request请求对象(3)

本篇接上一篇,将Servlet中的HttpServletRequest对象获取RequestDispatcher对象后能进行的[转发]forward功能和[包含]include功能介绍完. 首先来看RequestDispatcher对象的“转发”功能: 在<Servlet的学习(五)>中说过,使用ServletContext对象的getRequestDispatcher方法可以获得转发对象RequestDispatcher对象,将请求进行转发给其他的Servlet或者JSP处理,同时在该篇的结

Drf04 / drf request请求对象封装、版本、认证、权限

目录 Drf04 / drf request请求对象封装.版本.认证.权限 回顾和补充 今日详细 1.请求的封装 2.版本 3.认证(面试) 4.权限 Drf04 / drf request请求对象封装.版本.认证.权限 回顾和补充 restful规范 1. 建议用https代替http 2. 在URL中体现api,添加api标识 https://www.cnblogs.com/xwgblog/p/11812244.html # 错误 https://www.cnblogs.com/api/xw

小白学 Python 爬虫(12):urllib 基础使用(二)

人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基

ajax之请求对象的创建以及它与服务器之间的4次“握手”(好吧其实只有3次)

request对象的创建 对于request对象的创建,我们总会第一时间反映到下列语句 var request=new XMLHttpRequest(); 不过因为各大浏览器之间的相互斗殴行为,事情是不会这么简单的. 比如非常经典的:IE浏览器没有XMLHttpRequest函数. 但这难不倒我们聪明机智的程序员,我们也有经典的应对措施: function createRequest(){     try{         request=new XMLHttpRequest();     }c

C#-WebForm-★内置对象简介★Request-获取请求对象、Response相应请求对象、Session全局变量(私有)、Cookie全局变量(私有)、Application全局公共变量、ViewState

内置对象: 1.Request - 获取请求对象 用法:接收传值 protected void Page_Load(object sender, EventArgs e) { TextBox1.Text = Request["abc"]; } 2.Response - 相应请求对象 用法:(李献策lxc) 1.执行代码 //点击按钮执行代码 void Button1_Click(object sender, EventArgs e) { Response.Write("<

JSP内置对象--request对象

本文主要介绍JSP中的request对象 request对象的主要方法: setAttribute(String name,Object):设置名字为name的request的参数值 getAttribute(String name):返回由name指定的属性值 getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例 getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组 getCharacterEncoding()