• 理解爬虫原理


    一、简单说明爬虫原理

    通俗来讲,网络爬虫是指通过程序模拟浏览器站点的行为,向网站发起请求,把站点返回的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))
    

  • 相关阅读:
    如何查看Linux进程详情?(ps命令)
    6款免费网络延迟测试工具
    Java中的JVM和Redis,你了解的透彻么?
    thinkPHP 5/thinkPHP 5.1 的apache重写文件
    redisclient客户端管理工具
    鼠标经过时切换图片
    点击页面元素页面向上滚动
    MongoDB客户端管理工具--MongoDB Compass
    JS继承
    JavaScript面向对象基础
  • 原文地址:https://www.cnblogs.com/Xi-Chen00/p/10594283.html
Copyright © 2020-2023  润新知