7-6 HTTP响应的内容
本节编程练习不计算学习进度,请电脑登录imooc.com操作

HTTP响应的内容

通过urllib或者requests请求后,会得到一个HTTPResponse,HTTPResponse拥有状态码、回应头等的信息。
但我们知道,对于一个页面,通常是由文字、图片等信息组成的,这些属于一个HTTPResponse的内容。

import requests

response = requests.get('https://www.imooc.com')
content = str(response.content, encoding='utf-8') # ==> 打印具体内容

打印的结果是一个很长的字符串,显得杂乱无章,但其实它是由结构的,它是一个标准的HTML页面,可以从页面内容里面获取很多有用的数据。
网络爬虫是典型的应用程序,它的工作原理就是通过不断的请求互联网的页面,并从回应中解析获取出有用的数据;数据积累后,可以有很多用处。
通过requests获得网页的内容后,我们可以尝试使用一些简单的方法获取页面的内容。

content_list = content.split('\n') # 分行
len(content_list) # 打印页面内容的行数

在网页中,页面内部链接其他资源的信息是通过href提供的,通过字符串匹配的方式可以过滤出包含链接的行。

for line in content_list:
    if 'href' in line:
        print(line.strip())

过滤出来的信息或许有些杂乱,但也包含了一些有用的数据,我们可以从过滤后的信息中找到链接相关的信息。不过我们过滤的方式比较简单,通过优化过滤的方式可以匹配到更加精准的数据。而爬虫正是这样工作的。

任务

请从页面返回的内容中,过滤出链接含有www的内容。

  1. # Enter a code
下一节