爬虫初探
2019-01-02 本文已影响0人
9800k
认识爬虫
网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取 万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
想要在网上爬取想要的资源,需要有一定的对于HTML有一定的了解。接下来我将演示用Python来演示常用的函数。
Requests库的2个主要方法
函数 | 功能描述 |
---|---|
requests.request() | 构造一个请求,支撑以下各方法的基本方法 |
requests.get() | 获取HTML网页的方法 |
requests.head() | 获取HTML网页头部信息的方法 |
Response对象
Response对象包含服务器反回的所有信息,也包含请求的Request信息
Response对象的属性
函数 | 功能描述 |
---|---|
r.status_code | HTTP返回状态,200成功,404失败 |
r.text | HTTP响应url页面内容,数据类型字符串形式 |
r.enconding | 从HTTP header中猜测的响应方式的内容编码 |
r.content | HTTP响应后返回的二进制的形式 |
r.apparent_enconding | 从内容中分析出的响应内容编码方式(备选编码方式) |
import requests
url = "http://www.baidu.com" #获取一个网址
r = requests.get(url)
print(r.status_code) #HTTP返回状态,200为成功,其他的都是失败
这里只有当我们的请求得到了正确的响应以后,才能开始爬虫。
下面是爬取图片的全代码
import requests
import os
url="http://image.nationalgeographic.com.cn/2017/0211/20170211061910157.jpg"
root = "F://pics//"
path = root+url.split('/')[-1] #图片文件路径,split("/")[-1]取20170211061910157.jpg图片名
try:
if not os.path.exists(root): #查看是否存在这一文件夹,若不存在,则在F盘下创建pics文件夹
os.mkdir(root)
if not os.path.exists(path): #查看是否存在这一文件
r=requests.get(url)
with open(path, 'wb') as f: #用二进制写的方式打开这一文件,若没有则创建
f.write(r.content) #将图片以二进制形式写入文件
f.close()
print("文件保存成功")
else:
print("文件已存在")
except:
print("爬取失败")
这里我们用到了异常处理语句是为了保障程序的稳健性