1.HTTP请求协议

关键字 说明
Request URL 请求的URl地址
Request Method 请求的方法:GET/POST
Status Code

状态码:

200:访问成功

206:视频传输

403:不允许访问

404:没有找寻此界面

500:服务器错误

Remote Address 远端地址 :  ( IP:端口号 )
Connection 连接类型
Content-Encoding

数据压缩方式

常用压缩算法:

Content-Encoding:gzip

Content-Encoding:compress

Content-Encoding:deflate

Content-Encoding:identity Content-Encoding:br

关键字 说明
Accept 发送端希望接受的数据类型
Accept-Encoding 发送端支持的压缩算法
Accept-Language 发送端支持的语言
Cache-Contro 缓存机制
Cookie Cookie
User-Agent 用户代理  (模拟浏览器登录,绕过反爬机制)

2.urllib模块使用

# 导包import urllib.request as ur# read() 是将返回的HTTPResponse对象转换成网站信息以字节的方式返回
ret = ur.urlopen('【要请求的网站地址】').read()print(ret)# 导入到本地文件
with open('html名字','wb') as f:f.write(ret)

3.Request对象和URL编码

  1> Request对象

参数解析:

参数 作用
url 要请求的url(网址)
data data必须是bytes(字节流)类型,如果是字典,可以用urllib.parse模块里的urlencode()编码
headers headers是一个字典类型,是请求头。可以在构造请求时通过headers参数直接构造,也可以通过调用请求实例的add_header()方法添加。
origin_req_host 指定请求方的host名称或者ip地址
unverifiable 设置网页是否需要验证,默认是False,这个参数一般也不用设置。
method method是一个字符串,用来指定请求使用的方法,比如GET,POST和PUT等。
# 导包
import urllib.request as ur# Request() 可以封装Hander和Data
request = ur.Request('被提取的网站')response = ur.urlopen(request).read()print(response)

  2> URL编码

        在提取的URL地址中可能会有中文,在python中是不被识别的会被转义,这时我们就可以导入 urllib.parse 模块把他转码过来。

# 导包import urllib.parse as up# 定义转码的数据
data = {(URl数据)
}# URL编码
url_data = up.urlencode(data
)print(url_data)# 解码ret = up.unquote(url_data)print(ret)

4.Request对象之Http Post请求

案例:百度翻译爬虫

import urllib.request as ur
import urllib.parse as up
import json# 实例化data
data = {'kw':'python'
}url_data =up.urlencode(data)    # 对 data 编码request = ur.Request(url='https://fanyi.baidu.com/sug',data=url_data.encode('utf-8')
)response = ur.urlopen(request).read()# print(response)ret = json.loads(response)
# print(ret)translate = ret['data'][0]['v']  # 索引取值
print(translate)

5.Requst对象之Hander伪装策略

        

    Hander是Request里的参数,Hander 中经常参加两个参数:1,cookie 2,user-agent 用于模拟浏览器登录,来绕过浏览器的反爬策略,常用的是 user-agent 来模拟浏览器访问

user_agent 请求头模板:https://blog.csdn.net/Bocker_Will/article/details/122641248?spm=1001.2014.3001.5502

import urllib.request as ur
import user_agent  # 导入准备的user_agentrequest = ur.Request(url='https://edu.csdn.net/',headers={'User-Agent':user_agent.get_user_agent_pc()}
)response = ur.urlopen(request).read()

urllib使用案例相关推荐

  1. 一木.溪桥学爬虫-03:请求模块urllib、 urllib.request、urllib.parse.urlencode、urllib.parse.quote(str)、.unquote()

    一木.溪桥 在Logic Education跟Jerry学爬虫 07期:Python 爬虫 一木.溪桥学爬虫-03:请求模块urllib. urllib.request.urllib.parse.ur ...

  2. python程序实例教程基础-Python程序设计实例教程

    图书简介 配套资源:电子课件,习题答案,教学大纲,源代码 本书特色: ★本书共14个项目,主要包括Python编程基础.网络爬虫.数据分析和数据可视化四大部分内容. ★全部代码适用于Python 3. ...

  3. python编程基础与应用-Python程序设计基础与应用

    图书简介 配套资源:部分全彩印刷.电子课件.教学大纲.习题答案.源代码 本书特色: ★知名Python教育者董付国老师新作. ★言简意赅,案例丰富,配套资源超全部分内容全彩呈现. ★本书全部代码适用于 ...

  4. python程序设计基础与应用 机械工业出版社_Python程序设计基础与应用

    图书简介 配套资源:部分全彩印刷.电子课件.教学大纲.习题答案.源代码 本书特色: ★知名Python教育者董付国老师新作. ★言简意赅,案例丰富,配套资源超全部分内容全彩呈现. ★本书全部代码适用于 ...

  5. python编程实例教程-Python程序设计实例教程

    图书简介 配套资源:电子课件,习题答案,教学大纲,源代码 本书特色: ★本书共14个项目,主要包括Python编程基础.网络爬虫.数据分析和数据可视化四大部分内容. ★全部代码适用于Python 3. ...

  6. python程序设计基础董付国 pdf-Python程序设计基础与应用

    图书简介 配套资源:部分全彩印刷.电子课件.教学大纲.习题答案.源代码 本书特色: ★知名Python教育者董付国老师新作. ★言简意赅,案例丰富,配套资源超全部分内容全彩呈现. ★本书全部代码适用于 ...

  7. Python网络爬虫(三) 爬虫进阶

    ###目录: Python网络爬虫(一)- 入门基础 Python网络爬虫(二)- urllib爬虫案例 Python网络爬虫(三)- 爬虫进阶 Python网络爬虫(四)- XPath Python ...

  8. Urllib库函数、代理、爬取案例

    Urllib库函数.代理.爬取案例 urllib库-urlopen函数用法 from urllib import request resp=request.urlopen('http://www.ba ...

  9. Python爬虫进阶——urllib模块使用案例【淘宝】

    Python爬虫基础--HTML.CSS.JavaScript.JQuery网页前端技术 Python爬虫基础--正则表达式 Python爬虫基础--re模块的提取.匹配和替换 Python爬虫基础- ...

最新文章

  1. Java如何支持函数式编程?
  2. 1.1 torch_数据操作
  3. python乒乓球比赛规则介绍_乒乓球的比赛规则介绍
  4. Oracle在Linux内核参数的修改
  5. [转载] python判断字符串中包含某个字符串_干货分享| Python中最常用的字符串方法
  6. spring mvc实现ajax 分页
  7. vc6.0快捷键小结收藏
  8. 2008年希赛软考学院招生
  9. 孙玄:“玄姐”,特立独行的架构师
  10. 利用wireshark分析Voip语音RTP协议
  11. 为android开发安装ubuntu系统环境纪要
  12. (二)U盘安装Windows Server 2008 R2系统
  13. ctf镜子里面的世界_一个小编姐姐的CTF入坑之旅
  14. 老男孩教育Linux50期远程控制连接
  15. ERP实施-有色金属-铜冶炼
  16. Python国际象棋棋盘绘制
  17. 泰科 | 高压连接革命!CSJ高压连接器与您共赢电动汽车新时代
  18. Python爬取各种类型网站数据(视频,图片居多)
  19. 2020国开c语言程序设计1075,中央电大秋季C语言程序设计期末试卷及答案代码1075,01(7页)-原创力文档...
  20. 蓝队攻击的四个阶段(二)

热门文章

  1. SSO_and_OBIEE
  2. LBS游戏火拼三要素:位置、情感、3D渲染
  3. html5语言追加append,动态展示,append方法和html方法的区别?
  4. 转载----考试系统技术参数
  5. 怎么用计算机弄出饺子,如何用英文写包饺子的步骤?
  6. 阿里前CEO卫哲:马云半夜打电话,使我看清B2B的真正本质
  7. 经纬度转度分秒 Java/Android
  8. Java SE 基础一
  9. 近世代数 笔记与题型连载 第十三章(环与域)
  10. 安全框架Shiro的简单学习