ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

05.爬虫入门笔记1

2022-08-26 01:30:49  阅读:117  来源: 互联网

标签:xpath 入门 05 标签 tree 爬虫 html text div


入门爬虫笔记01

1.request库的使用

  • 使用request库的get方法

    import request
    r = request.get('www.baidu.com')
    

    这会得到一个Response对象,将其存入变量r。

  • 显示得到的html代码

    print(r.text)
    

    有时候会出现乱码的情况,这时候在网站使用开发者工具(F12),在head标签下,找一下'charset'这个单词

    如图百度的 charset = 'utf-8',所以在程序中加入代码:

    r.encoding = 'utf-8'  # 'gbk' 'utf-8'这个两个最常见
    

    2.使用xpath解析

    • 生成实例

      tree = etree.HTML(r.text) 
      
    • xpath匹配模式

      • 路径定位

        tree.xpath('/html/body/div') # 绝对路径 相对路径
        tree.xpath('/html//div') 
        
      • 属性定位

        tree.xpath('//div[@class='song']')
        # 定位class属性等于song 的 div标签
        
      • 引索定位

        tree.xpath('//div[@class='song']/p[3]')
        # 定位<div class="song"></div>内的第三个p标签 
        # 这个引索是从1开始的,而不是从0开始
        

        这些匹配模式可以组合使用,完成复杂的匹配。

    • 取出数据

      • 使用 @href 取出链接
      • 使用 text() 取出标签内的文本

      练习:

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
      </head>
      <body>
      <div class="main">
      </div> 
      <div class="menu">
        <ul>
            <li>
                <a href='https://www.baidu.com'>baidu</a>
            </li>
            <li>
                <a href='https://www.bilibili.com/'>bilibili</a>
            </li>
        </ul>
      </div> 
      </body>
      </html>
      

      取出第一个a标签的文本"baidu":

      a1 = tree.xpath("/html/body/div[@class='menu']/ul/li[1]/a/text()")
      

      取出第二个a标签的链接"https://www.bilibili.com/":

      a2 = tree.xpath("/html/body/div[2]/ul/li[2]/a/@href")
      

睡觉!

标签:xpath,入门,05,标签,tree,爬虫,html,text,div
来源: https://www.cnblogs.com/passion2021/p/16626301.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有