• 理解爬虫原理


    作业要求来自于https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2851

     

    1. 简单说明爬虫原理

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

    2. 理解爬虫开发过程

    1).简要说明浏览器工作原理;

        浏览器工作原理的实质就是实现http协议的通讯,就是向服务器发出请求,在浏览器窗口中展示想要访问的网络资源。资源的位置由用户使用 URI(统一资源标示符)指定。

    2).使用 requests 库抓取网站数据;

    requests.get(url) 获取校园新闻首页html代码

    具体代码如下:

    import requests
    from bs4 import BeautifulSoup
    url='http://news.gzcc.cn/html/xiaoyuanxinwen/'
    #网络资源获取
    res=requests.get(url)
    print(res.text)
    获取html代码

    结果如下: 

    3).了解网页

    写一个简单的html文件,包含多个标签,类,id

    具体代码如下:

    <body>
    <div id="wrapper">
        <header id="header">
            <div class="content">
                <div class="inner">
                    <h1>一 个 网 站</h1>
                    <p>这是一个测试用的网站你可以跳转到 <a href="https://www.baidu.com">百度</a> 看看<br>
                        当然也可以去 <a href="https://www.4399.com">4399小游戏</a> 玩一玩</p>
                </div>
            </div>
            <nav class="use-middle">
                <ul>
                    <li><a id="intro">Intro</a></li>
                    <li><a id="work">Work</a></li>
                    <li><a id="about">About</a></li>
                    <li><a id="contact">Contact</a></li>
                </ul>
            </nav>
        </header>
    </div>
    </body>
    简单html测试

     大概效果如下:

    4).使用 Beautiful Soup 解析网页;

    通过BeautifulSoup(html_sample,'html.parser')把上述html文件解析成DOM Tree

    select(选择器)定位数据

    找出含有特定标签的html元素

    找出含有特定类名的html元素

    找出含有特定id名的html元素

    具体代码如下:

    import requests
    from bs4 import BeautifulSoup
    with open(r'simpleHTML.html','r',encoding='utf-8') as f:
        text=f.read()
    soup=BeautifulSoup(text,'html.parser')
    #特定标签的html元素
    a=soup.select('li')[2].text
    # 特定类名的html元素
    b=soup.select('.inner')[0].text
    # 特定id名的html元素
    c=soup.select('#intro')[0].text
    print(a,b,c)
    解析网页

    结果如下:

     

    3.提取一篇校园新闻的标题、发布时间、发布单位

        具体代码如下:

    import requests
    from bs4 import BeautifulSoup
    url='http://news.gzcc.cn/html/2019/xiaoyuanxinwen_0320/11029.html'
    #网络资源获取
    res=requests.get(url)
    res.encoding='utf-8'
    # 解析成DOM Tree
    soup=BeautifulSoup(res.text,'html.parser')
    # 提取详细信息
    t = soup.select('.show-title')[0].text
    for news in soup.select('div'):
        if len(news.select('.show-title'))>0:
            t=news.select('.show-title')[0].text
            b=news.select('.show-info')[0].text
            print(t,b)
            break
    提取新闻

        结果如下:

     

  • 相关阅读:
    10.5 实现任务的自动调度
    6.2 常见多媒体标准及压缩技术
    南海区行政审批管理系统接口规范v0.3(规划)4.2.【queryExpireList】当天到期业务查询
    南海区行政审批管理系统接口规范v0.3(规划)4.1.【queryAcceptById】业务明细查询
    域名相关的一些基础知识
    域名相关的一些基础知识
    NTP时间服务器介绍
    NTP时间服务器介绍
    NTP时间服务器介绍
    运维实用操作命令
  • 原文地址:https://www.cnblogs.com/kunnkkk/p/10592714.html
Copyright © 2020-2023  润新知