爬虫篇-初识爬虫之urllib操作

作者: TianTianBaby223 | 来源:发表于2018-04-10 15:33 被阅读16次

    TZ : 学习是不断进步的阶梯

    一 : 爬虫简介

    网络爬虫(又被称为网页[蜘蛛],网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫.

    爬虫原理:

    1.首先确定需要爬取的网页UR地址
    2.通过HTTP/HTTPS协议来获取对应的HTML页面
    3.提取页面有用的数据

    爬虫的分类
    • 通用爬虫 :

    通常来说就是搜索引擎,尽可能把互联网上的网页下载下来,放到自己的本地服务器形成备份,再对这些网页做相关处理,提取关键字,去除广告,最后提供一个用户检索接口.
    通用爬虫需要遵守Robots协议规则,协议中会指明爬虫可以爬取网页的权限,大型搜索引擎都会遵守.

    • 聚焦爬虫 :

    面向用户需求爬虫,会针对某种特定的内容爬去信息,而且保证信息和需求尽可能相关.

    二 : 抓包工具

    Charles其实是一款代理服务器,通过过将自己设置成系统(电脑或者浏览器)的网络访问代理服务器,然后截取请求和请求结果达到分析抓包的目的。

    https设置

    1.安装SSL证书


    ssl证书

    2.证书设置成永久信任


    信任证书

    3.添加网站

    选择
    在add ->后分别设置 /
    设置

    手机抓包在这里就不说了,很简单网上有很多,如果找不到,评论区留言,我会单独给你讲解.

    三 : urllib基本操作

    User-Agent 是爬虫和反爬虫重要的一个步骤,反爬虫可以通过这个属性来过虑掉一批爬虫访问,所以们要模拟这个属性

    GET爬去普通网页
    # Author:TianTianBaby
    
    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context
    import urllib.request as  myurllib
    linkUrl = 'https://www.baidu.com/'
    
    
    #构造headers  
    ua_headers = {
    
        "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
    }
    urlRequest = myurllib.Request(linkUrl,headers=ua_headers)
    
    #向指定的url 地址发送请求,并返回服务器响应的类文件对象
    response = myurllib.urlopen(urlRequest)
    
    #服务器返回的类文件对象 支持 python 文件对象的操作方法
    #read() 方法是读取返回文件全部内容,返回字符串
    html = response.read()
    #打印响应内容
    print(html)
    
    #返回请求的响应码 成功返回200 ,4开头表示 服务器页面问题 , 5 开头表示服务器本身问题
    print(response.getcode())
    
    ##返回 数据实际的url, 防止重定向
    print(response.geturl())
    
    #返回服务器响应的HTTP报头
    print(response.info())
    
    
    POST爬去普通网页
    ua_headers = {
    
        "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
    }
    
    url = "http://wz.kulehu.com/app/index.php?i=1&c=entry&do=search_school&m=ted_users"
    
    dic  = {
    
    "school_name":"沈阳市"
    
    }
    data = parse.urlencode(dic).encode()
    request = myurllib.Request(url,data=data,headers=ua_headers)
    response = myurllib.urlopen(request)
    myjosn = response.read()
    
    print(myjosn)
    

    四 : Cookie模拟登录

    通过抓包工具,找到一个登录的网页的Cookie信息进行模拟登录,有不知道Cookie是个什么东西的小伙伴点这里-->点我了解,模拟登录就以简书为例子了.
    我先登录一下简书,找出Cookie进行模拟登录.

    # Author:TianTianBaby
    import ssl
    ssl._create_default_https_context = ssl._create_unverified_context
    import  urllib.request as myurllib
    
    
    url = "https://www.jianshu.com/users/077936bc1760/following"
    headrs = {
    
    "Host":"www.jianshu.com",
    "Connection":"keep-alive",
    "Accept":"text/html, */*; q=0.01",
    "User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
    "Referer":"https://www.jianshu.com/users/077936bc1760/following",
    "Accept-Language":"zh-CN,zh;q=0.9",
    "Cookie":"这是我的秘密要用你自己的哦",
    }
    request = myurllib.Request(url,headers=headrs)
    response = myurllib.urlopen(request)
    print(response.read().decode())
    

    相关文章

      网友评论

        本文标题:爬虫篇-初识爬虫之urllib操作

        本文链接:https://www.haomeiwen.com/subject/nmywcftx.html