爬虫初探

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("爬取失败")

这里我们用到了异常处理语句是为了保障程序的稳健性

上一篇下一篇

猜你喜欢

热点阅读