python用beautiful对爬取的网络信息进行信息筛选与信息提取

准备好模块

由于信息多种多样,这里以资讯新闻信息为例,以beautifulsoup为主re和xpath为辅,分享一下我这几天的挑选信息的方法。
在这里插入图片描述

  • 调用beautifulsoup
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(html_text, ‘html.parser’)

  • 调用正则
    import re

  • 调用xpath
    from lxml import etree

    注意,此处省略如何获取整版网址的信息,信息内容如下
    html_text = spider(url)

分析大多数新闻资讯的结构

分析界面,寻找代码

文章结构体在哪(浏览器按f12,选中相应的位置,锁定代码块):
在这里插入图片描述

  • 大多数新闻使用article标签来存放新闻,这个标签含有上图的所有信息
    get_news = soup.find_all(‘article’)

在这里插入图片描述

  • 也可以是含有某个特定属性的div标签
    soup.find_all(‘div’, {‘class’: ‘某个特点属性’})
    注意该标签和属性能把文章的所有内容都涵盖,因为前端在处理文章时也是做了代码块限定的

在找到的模块中进行具体信息提取

在这里插入图片描述

  • 像上图这种标签是递归的,没有其他断点的,就可以直接获取信息
    • 获取本标签某属性的值
      get_news[0].header.h2.a.attrs[‘href’]
    • 获取本标签的文本信息
      get_news[0].div.p.text

在这里插入图片描述

  • 获取这种本结构独一无二的标签最简单
    n_detail = get_news[0].div.p.text
    在这里插入图片描述

  • 获取这种中有其他我们不想要的信息时,可以用正则进行再加工处理
    n_time = re.finditer(’(.*?)T’, (get_news[n].find(‘time’).attrs[‘datetime’]))
    在这里插入图片描述

  • 获取这种自己想要的内容不在标签里面的情况
    etree.HTML(str(get_news[n].find(‘div’,{‘class’:‘特定属性’}))).xpath(’//div[@class=“特定属性”]/text()’)[0]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值