首页 > 其他分享 >05.爬虫入门笔记1

05.爬虫入门笔记1

时间:2022-08-26 01:11:07浏览次数:102  
标签: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
From: https://www.cnblogs.com/passion2021/p/16626301.html

相关文章

  • RabbitMQ 入门系列:5、基础编码:交换机的进阶介绍及编码方式。
    系列目录RabbitMQ入门系列:1、MQ的应用场景的选择与RabbitMQ安装。RabbitMQ入门系列:2、基础含义:链接、通道、队列、交换机。RabbitMQ入门系列:3、基础含义:持久化......
  • windows下的Sonarqube+Sonar-Scanner简单入门配置
    参考:https://blog.csdn.net/weixin_40496191/article/details/120250953https://www.cnblogs.com/longpizi/p/12376500.htmlsonar文档:https://docs.sonarqube.org/lates......
  • JavaScript快速入门-06-函数
    6函数6.1函数定义  函数可以封装语句,然后在任何地方、任何时间执行。JavaScript中的函数使用function关键字声明,主要由函数名、函数参数和函数体组成。其基本语法......
  • C++入门第一课 函数声明与定义
    函数的声明:如:voidLog(constchar*message);1,在C++中,函数原型就是函数的声明。函数声明就是给函数取名并指定函数的参数类型,返回值类型。告诉编译器有这么一个可使用的......
  • Mysql入门练习题
    1、在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄mysql>selectname,agefromstudentswhereage>25andgender='M';+---------------+-----+|name......
  • jmeter-从入门到精通-定时器2
    什么是定时器?模拟用户思考的时间,,让性能测试更加逼真;JMeter中的定时器一般被我们用来设置延迟与同步。定时器的执行优先级高于Sampler(取样器),在同一作用域(例如控制器下)下有......
  • elasticsearch入门
    1.HTTP操作幂等性和非幂等性的概念:幂等通俗来说是指不管进行多少次重复操作,都是实现相同的结果。在REST风格的请求中,GET,PUT,DELETE都是幂等性操作,而POST不是。1.索引操......
  • 魔百和s905l3a蓝牙系列 在armbian驱动并使用蓝牙!
    目前测试过CM311-1a,m401a,unt403a,b863av3.2-m,e900v22d等蓝牙芯片都是rtl8761a均可安装armbian后使用蓝牙,连接键鼠简直不要爽歪歪!看到这个标题是不是心里特高兴了一下,......
  • Java Servlet 入门:问题系列:反射方法参数名获取不到问题:arg0,arg1
    问题:获取反射的方法参数名时,得到arg0,arg1,而不是定义的参数名。示例代码:Parameter[]parameters=methodInfo.getParameters();if(parameters!=null&&parame......
  • 《零起点Python机器学习快速入门》PDF高清版下载
    《零起点Python机器学习快速入门》PDF高清版下载地址  内容简介  · · · · · ·《零起点Python机器学习快速入门》采用独创的黑箱模式,MBA案例教学机......