zoukankan      html  css  js  c++  java
  • BeautifulSoup学习笔记

    1.如果tag最内层只有一个 NavigableString 类型子节点,那么这个tag可以直接使用tag.string 得到子节点

     1 # encoding=utf-8
     2 
     3 from bs4 import BeautifulSoup
     4 
     5 html='''
     6 <td>直接是 可遍历的字符串</td>
     7 <td><a href="#">包含a标签的可遍历字符串</a></td>
     8 <td><div><a href="#">包含a标签和div的可遍历字符串</a></div></td>
     9 '''
    10 soup=BeautifulSoup(html,'html.parser')
    11 tds=soup.find_all('td')
    12 for td in tds:
    13     print 'td:'+str(td)
    14     print 'string:'+td.string
    15 #  总结:如果tag(及其子tag或子孙tag中)只有一个 NavigableString 类型子节点,
    16 # 那么这个tag可以直接使用tag.string 得到子节点 不用写 子孙tag.string

     2.使用频率较高的get_text()方法,可获取tag和子孙tag中的内容

    如果只想得到tag中包含的文本内容,那么可以用 get_text() 方法,这个方法获取到tag中包含的所有文本

    内容包括子孙tag中的内容,并将结果作为Unicode字符串返回。

    在爬药智网的时候因为对该方法不熟练,多写了好多代码╮(╯▽╰)╭

     1 html= '<a href="http://example.com/">
    I linked to <i>example.com</i>
    </a>'
     2 soup = BeautifulSoup(html,'html.parser')
     3 
     4 #直接得到所有的文本,中间包含其他标签也可以
     5 soup.get_text()
     6  #u'
    I linked to example.com
    '
     7 soup.i.get_text()
     8 #u'example.com'
     9 #使用最多的还是去除文本中的前后空白
    10 soup.get_text("|", strip=True)
    11 #u'I linked to|example.com'
  • 相关阅读:
    UVA 707
    我写了一起 Makefile(一)
    百度mp3接口
    MBProgressHUD -[__NSCFString sizeWithAttributes:]: unrecognized selector问题解决了
    BCM策略路由交换芯片
    HDU 4006 The kth great number AVL解
    PHP进口Excel至MySQL方法
    隐藏Console形式无效(继续1)
    优秀的前端project如何制定一个老师--html学习路径
    地址阵列
  • 原文地址:https://www.cnblogs.com/RoundGirl/p/4894745.html
Copyright © 2011-2022 走看看