爬取网页的基础知识-HTTP请求方法
-
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。 HTTP1.1
-
新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
爬取网页的基础知识-HTTP状态码
爬取网页的基础知识-URL
- URL是Uniform Resource Locator的缩写,即统一资源定位系统,也就是网址。
- URL 遵守一种标准的语法,它由协议、主机名\域名、端口、路径、以及文件名这六个部分构成,
常见的标签如下:
爬取网页的urllib库
- 使用urllib库获取网页信息
- 使用 urllib.request.urlopen()函数可以打开一个网站,读取并打印网页信息。
- urllib.urlopen(url, data[, proxies])
- urlopen()函数返回response对象
- 函数的参数url表示远程数据的路径;data表示提交到url的数据;proxies用于设置代理。
使用urllib库获取网页信息
-
response对象的方法
-
info()方法: 返回一个httplib.HTTPMessage对象。
-
getcode()方法:返回HTTP状态码。如果是HTTP请求,200表示请求成功完成,404表示网址未找到。
-
geturl():返回请求的url。
urllib爬虫案例
- 第4步 编写并运行Python爬虫程序,代码如下:
from re import findall
from urllib.request import urlopen
url = 'https://mp.weixin.qq.com/s?__biz=MzI4MzM2MDgyMQ==&mid=2247486249&idx=1&sn=a37d079f541b194970428fb2fd7a1ed4&chksm=eb8aa073dcfd2965f2d48c5ae9341a7f8a1c2ae2c79a68c7d2476d8573c91e1de2e237c98534&scene=21#wechat_redirect'
with urlopen(url) as fp:
content = fp.read().decode()
pattern = 'data-type="png" data-src="(.+?)"'
#查找所有图片链接地址
result = findall(pattern, content)
#逐个读取图片数据,并写入本地文件
for index, item in enumerate(result):
with urlopen(str(item)) as fp:
with open(str(index)+'.png', 'wb') as fp1:
fp1.write(fp.read())
爬取网页的requests库
- requests库解析
- requests库的requests.get()方法功能是网络爬虫和信息提交
- res=requests.get(url[,timeout=n])
- 该函数返回的网页内容会保存为一个response对象。参数url必须采用HTTP或HTTPS方式访问,可选参数timeout用于设定每次请求超时时间。
requests基本操作
- 使用get()方法获取网页信息时设置cookies参数的用法:
>>> url = 'http://httpbin.org/cookies'
>>> cookies = dict(cookies_are='working')
>>> r = requests.get(url, cookies=cookies) #设置cookies
>>> print(r.text)
{
"cookies": {
"cookies_are": "working"
}
}