zoukankan      html  css  js  c++  java
  • 理解爬虫原理

    一、简单说明爬虫原理

    通俗来讲,网络爬虫是指通过程序模拟浏览器站点的行为,向网站发起请求,把站点返回的HTML代码、JSON数据、二进制数据(图片、视频等)抓取到本地,再通过程序提取分析数据,用以代替繁琐、低效和通过复制粘贴等手段来获取数据的技术。

    二、理解爬虫开发过程

    1、简要说明浏览器工作原理

    用户在浏览器输入url,浏览器向web服务器发送request请求,服务器收到请求并处理后向浏览器返回response,然后浏览器通过解析response讲结果呈现给用户。在这个过程中,浏览器是可以通过爬虫分析数据的(部分网站不允许)。

    2、使用requests库抓取网站数据

    import requests
    url='http://news.gzcc.cn/html/xiaoyuanxinwen/'
    res = requests.get(url)
    print("status_code = {}".format(res.status_code))#状态字
    type(res)
    res.encoding='utf-8'#编码格式
    print(res.text)
    
    

    3、理解网站

    编写一个简单的网页:

    html_sample='''
    <html>
    
      <head>
        <title>这是标题</title>
      </head>
      
      <body>
        <div>
          <p>这是段落<p><br>
          <a href="http://www.gzcc.cn" >广州商学院</a>
        </div>
      </body>
      
    </html>
    '''
    

    网站的基本工作原理:浏览器根据源代码,解析DOM树,进行样式渲染,最后将结果返回给用户:

    4、使用BeautifulSoup解析网页

    BeautifulSoup是HTML/XML的解析器,主要是来解析整个DOM树,它提供了简单有常用懂得导航、搜索、以及修改结构树的操作,可以提高提取数据的效率。

    (1) 解析标签对象属性:

    from  bs4 import BeautifulSoup
    soup = BeautifulSoup(html_sample,'html.parser')
    print(soup.head)
    print('-------------------------')
    print(soup.head.text)
    print('-------------------------')
    print(soup.p.contents)
    print('-------------------------')
    print(soup.p.name)
    


    (2) select选择定位数据:

    from  bs4 import BeautifulSoup
    soup = BeautifulSoup(html_sample,'html.parser')
    print(soup.select('h1'))#选择h1标签
    print(soup.select('.p1'))#选择类为p1元素
    print(soup.select('#btn'))#选择id为btn的元素
    

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

    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'
    soup = BeautifulSoup(res.text, 'html.parser')
    
    print("标题:{}
    发布时间、发布单位: {}".format(soup.select('.show-title')[0].text, soup.select('.show-info')[0].text))
    

  • 相关阅读:
    GTK+ 3.6.2 发布,小的 bug 修复版本
    RunJS 新增 Echo Ajax 测试功能
    Mozilla 发布 Popcorn Maker,在线创作视频
    Sina微博OAuth2框架解密
    Mina状态机State Machine
    Mozilla 发布 Shumway —— 纯JS的SWF解析器
    Code Browser 4.5 发布,代码浏览器
    ROSA 2012 "Enterprise Linux Server" 发布
    ltrace 0.7.0 发布,程序调试工具
    Artifactory 2.6.5 发布,Maven 扩展工具
  • 原文地址:https://www.cnblogs.com/Xi-Chen00/p/10594283.html
Copyright © 2011-2022 走看看