[python]爬虫:熟练掌握beautifulsoup

Beautifulsoup处理的对象种类: 首先用其解析文件: soup = BeautifulSoup(open(‘index.html’)) 1.tag: 例如<title>The Dormouse’s story</title>中的title就是tag 的对象 如果想要提取title里面的字符串: print soup.title 通过这种方式找到的是第一个符合要求的标记 也可以修改这个标签: soup.title.name = ‘mytitle’ 这样的话那一段字符便可以被修改成为<mytitle>The Dormouse’s story</mytitle> tag当然有他的属性,如<p class=”title”><b>abcdefg</b></p>,有一个class属性,它的值为title,类似于字典的标签 soup.p[‘class’] soup.p.get(‘class’) 的输出结果都是[‘title’] soup.p.attrs 输出的是 {‘class’:[‘title’]} 当然我们也可以对它进行修改: soup.p[‘class’] = ‘myclass’ 2.NavigableString 我们可以通过加.string的方式来获得标签内部的内容: soup.p.string 就打印出的是abcdefg,也可以通过unicode()函数将其转化为Unicode字符串 3.beautifulsoup: beautifulsoup就是整个代码本身,代指的就是这里的soup 4.comment comment是文档的注释部分 如 <a> <!–Elsie–> </a> 我们照样可以通过soup.a.string访问这里的Elsie,打印出来的结果和普通内容没有什么两样,需要通过type(soup.a.string)来判断是否是注释,如果是,打印出来的结果是bs4.element.Comment 遍历文档树 1.子节点 tag.content可以将tag子节点以列表的方式输出而tag.children是一个循环生成器,可以对子节点进行循环: for child in soup.head.children: print(child) 但是这只包含其下级,而不包含下级的下级的下级,需要用.descendants作递归循环,而当tag内容唯一时(只有一个tag)可以用.string直接读取里面的内容,而,strings则可以遍历所有tag里面的的字符串,需要用循环语句调用,而.stirpped_strings可以去掉字符串里面包含的空格 […]