爬虫-Day2-bs4数据解析

本文介绍了在使用Python爬虫时遇到的418错误及其解决方案,通过设置请求头模拟浏览器行为来正常获取网页数据。接着,详细讲解了BeautifulSoup库的基本用法,包括创建BeautifulSoup对象、选取HTML标签以及获取标签内容和属性。实例展示了如何解析网页中的特定元素,为网页抓取和数据提取提供了基础操作指南。
摘要由CSDN通过智能技术生成

爬虫-Day2-bs4数据解析

1.requests设置浏览器信息

  • 418现象: 网页对应的服务器做了身份验证,必须浏览器才能返回数据。如果不是浏览器发送的请求就会返回418

  • 解决方案:设置请求的请求头中的用户信息为一个浏览器信息

    headers = {
        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
    }
    response = requests.get('https://movie.douban.com/top250', headers=headers)
    

2.bs4基本用法

  • 创建网页对应的BeautifulSoup对象

    • BeautifulSoup(网页数据, 解析器名称)

      网页数据 - 需要解析的网页源代码
      解析器名称 - lxml

      html = open(‘data.html’, encoding=‘utf-8’).read()
      soup = BeautifulSoup(html, ‘lxml’)

  • 获取标签

    • soup对象.select(css选择器) - 在整个网页中,获取css选择器选中的所有标签,返回值是列表,列表中的元素是标签对象
      soup对象.select_one(css选择器) - 在整个网页中,获取css选择器选中的标签中的第一个标签,返回值是标签对象

      标签对象.select(css选择器) - 在指定标签中,获取css选择器选中的所有标签,返回值是列表,列表中的元素是标签对象
      标签对象.select_one(css选择器) - 在指定标签中,获取css选择器选中的标签中的第一个标签,返回值是标签对象

      result = soup.select('p')
      result = soup.select_one('p')
      
  • 3.获取标签内容、获取标签属性

    • 获取标签内容: 标签对象.text

      a = soup.select_one('div.c1>a')
      print(a.text)
      
    • 获取标签属性:标签对象.attrs[属性名]

    a = soup.select_one('div.c1>a')
    print(a.attrs['href'])
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值