python之爬虫的入门01------爬虫原理、爬虫伪装

一、什么是爬虫
爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。

如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,

沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序;

从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用;

二、爬虫基本流程
发送请求—获取响应内容—解析数据—保存数据
【互联网加载一个页面:
首先在地址栏输入url地址(http://www.baidu.com),然后一个请求携带信息传送到url地址所在服务器,服务器根据信息作出反应,返回响应数据,响应数据返回浏览器进行渲染、就是css加载和js加载。

三、爬虫范例

范例1.返回一个HTML页面数据(一般是残缺的,缺少渲染)


import urllib.request
#导入一个爬虫需要的包

def main():

    response = urllib.request.urlopen(url='https://www.taobao.com/')
    #返回的是一个响应对象

    response = response.read()
    #获取HTML内容,read可以获取文件所有的内容

    print(response)

if __name__ == '__main__':
    '''简单返回一个HTML页面数据'''
    main()

范例2.爬虫伪装请求头(伪装从浏览器发送的,防止被校验出是爬虫)

import urllib.request as urllib2


def main():

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36',
        'Connection': 'keep - alive',
    }

    # 构造REQUEST请求,增加headers,伪装成浏览器请求
    request_obj = urllib2.Request(url='http://www.taobao.com/', headers=headers)

    # 获取请求头的User-agent观察下
    user_agent = request_obj.get_header('User-agent')
    print(user_agent)

    # 获取请求头的connect观察下
    conect = request_obj.get_header('Connection')
    print(conect)

    response = urllib2.urlopen(request_obj)
    # 返回的是一个响应对象

    response = response.read()
    # 获取html的内容,read可以获取文件所有的内容
    return response


if __name__ == '__main__':
    a=main()
    print(a)
    #现在获取的响应a是bytes类型

上面这个范例的headers我只写了两个,最好是把headers写完整。
headers查看方法:网页上鼠标点击右键,进入审查元素或者检查,里面的network里,此时刷新网页,一般出现的文件点击第一个,右边headers里的request headers。

猜你喜欢

转载自blog.csdn.net/sui_yi123/article/details/83511304