一、认识网页结构
网页一般由三部分组成,分别是:
- HTML(超文本标记语言);
- CSS(层叠样式表);
- JScript(活动脚本语言)。
1.HTML
HTML 是整个网页的结构,相当于整个网站的框架。带“<”、“>”符号的都是属于 HTML 的标签,并且标签都是成对出现的。
常见的标签如下:
.. 表示标记中间的元素是网页 .. 表示用户可见的内容..表示框架..
表示段落
- ..
- 表示列表 ..表示图片
..
表示标题 ..表示超链接
CSS
CSS 表示样式,图 1 中第 13 行<style type="text/css">表示下面引用一个 CSS,在 CSS 中定义了外观。
JScript
JScript 表示功能。交互的内容和各种特效都在 JScript 中,JScript 描述了网站中的各种功能。
如果用人体来比喻,HTML 是人的骨架,并且定义了人的嘴巴、眼睛、耳朵等要长在哪里。CSS 是人的外观细节,如嘴巴长什么样子,眼睛是双眼皮还是单眼皮,是大眼睛还是小眼睛,皮肤是黑色的还是白色的等。JScript 表示人的技能,例如跳舞、唱歌或者演奏乐器等。
二、使用 requests 库请求网站
网页请求的过程分为两个环节:
1.Request (请求):向服务器发送访问请求。
2.Response(响应):向用户(客户端)发送响应的内容。
网页请求的方式也分为两种:
1.GET:最常见的方式,一般用于获取或者查询资源信息,也是大多数网站使用的方式,响应速度快。
2.POST:相比 GET 方式,多了以表单形式上传参数的功能,因此除查询信息外,还可以修改信息。
1.get方式
import requests #导入requests包
url = 'http://www.cntour.cn/'#定义URL
strhtml = requests.get(url) #Get方式获取网页数据
print(strhtml.text)# 打印响应内容
res.encoding = res.apparent_encoding#指定编码如,res.encoding='gb2312'
print(res) # <Response [200]> 200代表状态码
# print(res.text) # 返回响应文本,str字符串类型
# print(res.encoding) # requests库认为的编码方式 ISO-8859-1
# print(res.content) # 返回响应源码,bytes类型
# print(res.content.decode('utf-8')) # 把响应的bytes源码转为str类型
# print(res.status_code) # 当前请求的响应码
# print(res.request.headers) # 查看请求的请求头
# print(res.headers) # 查看响应头
# print(res.request.cookies) # 查看请求的cookie
# print(res.cookies) # 查看响应的cookies
注意: 如果response.text有乱码解决办法:
response.content.decode()
response.content.decode(‘gbk’)
response.content.decode(‘unicode_escape’)
response = requests.get(url,timeout