通过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. 请在本地编写代码练习
2. pip install requests安装requests库
参考答案:
response = requests.get('https://www.imooc.com') content = str(response.content, encoding='utf-8') # ==> 打印具体内容 content_list = content.split('\n') # 分行 for line in content_list: if 'href' in line and 'www' in line: print(line.strip())
请验证,完成请求
由于请求次数过多,请先验证,完成再次请求
打开微信扫码自动绑定
绑定后可得到
使用 Ctrl+D 可将课程添加到书签
举报