爬虫技术基础(1)-网络请求【转载】
我们在使用爬虫的时候离不开URL地址和下载页面,URL它的语法格式一般为:
protocol :// hostname[:port] / path / [;parameters][?query]#fragment
URL由三部分组成,第一部分是协议,有http、https、ftp等,第二部分存放资源的服务器的域名或IP地址,第三部分为资源的具体地址。
我们在进行网络请求的时候通常采用三种方式:urllib、urllib3和requests。
1. urllib模块
urllib是Python系统库中存在的一个模块,它提供了多个子模块:
1) urllib.request
提供打开和阅读URL的方法和类
2) urllib.error
包含异常类
3) urllib.parse
解析和引用URL
4) urllib.robotparser
解析robots.txt文件
我们使用最多的是第一个子模块中的方法,其中包含了对服务器请求的发出、跳转、代理等。
当我们向网页发送请求的时候,采用urllib.request.urlopen()方法。
例如:
import urllib.request#引入模块
response = urllib.request.urlopen('http://www.baidu.com/')
html = response.read().decode('utf-8')#以utf-8格式读取网页的内容
print(html)#输出内容
输出结果为网页中的内容(html格式):

2. requests模块
requests是一种第三方模块,主要用于发送请求,它在使用的时候比urllib模块要简洁方便很多,我们可以在命令操作符里通过pip install requests来安装,也可以在Pycharm中直接进行安装。

我们可以通过requests模块的get方法打印多种请求信息,代码如下:
import requests
r = requests.get('https://www.douban.com/')
print(r.status_code)#输出状态码
print(r.encoding)#输出编码格式
print(r.headers)#输出头部文件
print(r.cookies)#输出cookie信息
print(r.content)#输出字节流形式网页源码
输出结果如下:
418None{'Date': 'Wed, 19 Feb 2020 10:10:22 GMT', 'Content-Length': '0', 'Connection': 'keep-alive',
'Keep-Alive': 'timeout=30', 'Server': 'dae'}<RequestsCookieJar[]>b''
requests模块也可以使用post、put、delete、hand等来发送请求,详情可以参考: http://2.python-requests.org/zh_CN/latest/user/quickstart.html
原文章:https://www.dotcpp.com/course/318
2348

被折叠的 条评论
为什么被折叠?



