• Python3处理HTML获取所需内容


    处理HTML页面,经常使用的便是使用beautifulsoup库

    pip install beautifulsoup4

    执行上述语句下载bs4库

    一般请求下来的所需数据都位于tbody的tr标签里,下面给出对应代码:

     soup = BeautifulSoup(r.text, "html.parser")
        informationlist = []
        for tr in soup.find('tbody').children:
            #出现/n情况,/n在soup中被认为是子节点之一
            if(tr!='
    '):
                tds = tr('td')
                informationlist.append([tds[0].string, tds[1].string, tds[8].string])
        for i in range(len(informationlist)):
            information = informationlist[i]
            print("{:^10}	{:^6}	{:^10}".format(information[0], information[1], information[2]))

    Tag:标签,最基本的信息组织单元,分别用<>和</>标明开头和结尾

    Name:标签的名字,<p>…</p>的名字是'p',格式:<tag>.name

    Attributes:标签的属性,字典形式组织,格式:<tag>.attrs

    NavigableString:标签内非属性字符串,<>…</>中字符串,格式:<tag>.string

    Comment:标签内字符串的注释部分,一种特殊的Comment类型

    遍历方法:

    for child in soup.body.children: 
        print(child)
    for child in soup.body.descendants: 
        print(child)

    下面给出一些常用的属性

    .contents:子节点的列表,将<tag>所有儿子节点存入列表

    .children:子节点的迭代类型,与.contents类似,用于循环遍历儿子节点

    .descendants:子孙节点的迭代类型,包含所有子孙节点,用于循环遍历

    .parent:节点的父亲标签

    .parents:节点先辈标签的迭代类型,用于循环遍历先辈节点

    .next_sibling:返回按照HTML文本顺序的下一个平行节点标签

    .previous_sibling:返回按照HTML文本顺序的上一个平行节点标签

    .next_siblings:迭代类型,返回按照HTML文本顺序的后续所有平行节点标签

    .previous_siblings:迭代类型,返回按照HTML文本顺序的前续所有平行节点标签

  • 相关阅读:
    谷歌在外贸中的实战解析
    关于外贸淡季的几点看法
    如何打造完美报价单
    bbs
    你身上的所有光环,同样是套在你身上的枷锁
    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
    用C#生成随机中文汉字验证码的基本原理
    必须根据不同的数据内容来套用不同的编码或是译码函式,以便取得对应的字节或是字符串数据
    锁和多线程:5种锁介绍(三)
    锁和多线程:3种锁的使用(二)
  • 原文地址:https://www.cnblogs.com/FZfangzheng/p/7581596.html
Copyright © 2020-2023  润新知