零基础学 Python(2018 版)
尹会生
前游戏公司技术总监,前新浪网技术经理
80146 人已学习
新⼈⾸单¥68
课程目录
已完结/共 72 讲
第一章 :Python介绍和安装 (3讲)
第二章 :Python基础语法 (3讲)
第四章 :条件与循环 (5讲)
第五章 :映射与字典 (2讲)
第六章 :文件和输入输出 (2讲)
第七章 :错误和异常 (1讲)
第九章 :模块 (1讲)
第十章 :语法规范 (1讲)
第十一章 :面向对象编程 (4讲)
第十二章 :多线程编程 (2讲)
第十六章 :综合案例 & 结课测试 (1讲)
特别放送 (1讲)
零基础学 Python(2018 版)
登录|注册
留言
4
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 65 | HTTP头部信息的模拟
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | Python语言的特点
02 | Python的发展历史与版本
03 | Python的安装
04 | Python程序的书写规则
05 | 基础数据类型
06 | 变量的定义和常用操作
07 | 序列的概念
08 | 字符串的定义和使用
09 | 字符串的常用操作
10 | 元组的定义和常用操作
11 | 列表的定义和常用操作
12 | 条件语句
13 | for循环
14 | while循环
15 | for循环语句中的if嵌套
16 | while循环语句中的if嵌套
17 | 字典的定义和常用操作
18 | 列表推导式与字典推导式
19 | 文件的内建函数
20 | 文件的常用操作
21 | 异常的检测和处理
22 | 函数的定义和常用操作
23 | 函数的可变长参数
24 | 函数的变量作用域
25 | 函数的迭代器与生成器
26 | Lambda表达式
27 | Python内建函数
28 | 闭包的定义
29 | 闭包的使用
30 | 装饰器的定义
31 | 装饰器的使用
32 | 自定义上下文管理器
33 | 模块的定义
34 | PEP8编码规范
35 | 类与实例
36 | 如何增加类的属性和方法
37 | 类的继承
38 | 类的使用-自定义with语句
39 | 多线程编程的定义
40 | 经典的生产者和消费者问题
41 | Python标准库的定义
42 | 正则表达式库re
43 | 正则表达式的元字符
44 | 正则表达式分组功能实例
45 | 正则表达式库函数match与search的区别
46 | 正则表达式库替换函数sub()的实例
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹操作
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumPy安装
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代码
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式get和post
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链接
68 | Beautiful Soup的安装和使用
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下载图片
强势回归:零基础学Python2022版来啦!
71 | 如何分析源代码并设计合理的代码结构&结课测试
本节摘要

课程源码、课件及课后作业地址:

https://gitee.com/geektime-geekbang/geekbangpython

登录 后留言

全部留言(4)

  • 最新
  • 精选
hiro
老师,你好,在运行 老师视频的示例代码,报如下错: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte 谷歌以后,网上说 :“header是否存在 'Accept-Encoding':' gzip, deflate',这一句话,如果存在,删除即可解决。”,我删除了,运行正常,不太清楚原因是什么了,老师能否帮忙解答下呢?

作者回复: 遇到问题先查搜索引擎是个好习惯,如果其他人遇到了同意的问题往往已经有答案,如果别人从来没遇到过,大多数情况是你思考的方向不对。 由于视频时间的关系,我没有在里面详细讲解http协议,首先来看Accept-Encoding的解释: HTTP Header中Accept-Encoding 是浏览器发给服务器,声明浏览器支持的编码类型 (来源于百度百科); 说人话就是定义了客户端和浏览器传输传输”文本内容“时是否需要压缩,而gzip, deflate就是客户端和服务端通用的压缩算法。 那么为什么会出现上面的UnicodeDecodeError的错误呢?是因为Python默认按照utf-8的编码读取网页文件时,发现是乱码(因为被压缩过了),所以报错了。 就像是一个txt的文本文件如果被rar压缩软件压缩过,再用记事本打开是乱码是同样的道理。 所以结论就是要根据服务端的网页编码确定是否需要进行 'Accept-Encoding':' gzip, deflate' 的解压缩操作。

2019-03-03
7
Metamorphosis
老师你这个课程对应的代码我没有找到,可不可以发给链接,谢谢。

作者回复: 链接:https://github.com/wilsonyin123/geekbangpython/tree/master/python_demo http头部信息是通过浏览器的F12调试信息抓取到的 from bs4 import BeautifulSoup import requests headers = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Language": "zh-CN,zh;q=0.8", "Connection": "close", "Cookie": "_gauges_unique_hour=1; _gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1", "Referer": "http://www.infoq.com", "Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.98 Safari/537.36 LBBROWSER" } url = 'http://www.infoq.com/cn/news' # 取得网页完整内容 def craw(url): response = requests.get(url, headers=headers) print(response.text) # craw(url) # 取得新闻标题 def craw2(url): response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'lxml') for title_href in soup.find_all('div', class_='news_type_block'): print([title.get('title') for title in title_href.find_all('a') if title.get('title')]) # craw2(url) # 翻页 for i in range(15, 46, 15): url = 'http://www.infoq.com/cn/news/' + str(i) # print(url) craw2(url)

2019-09-06
2
吴鹏飞
老师,请教一下,视频中你说要对headers进行utf8编码,但我看代码只是对dict字典进行了编码,headers没有吧?

作者回复: 你好,我会看了一下,应该是口误, headers并没有进行utf-8编码的设置, 感谢指正

2021-04-11
o0oi1i
打卡65
2020-02-28
收起评论