05.爬虫入门笔记1

入门爬虫笔记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")
      

睡觉!

posted @ 2022-08-26 01:04  passion2021  阅读(36)  评论(0编辑  收藏  举报