网页信息提取常用的python工具包括正则表达式、CSS以及xpath.
叶落阁 的正则表达式总结;
以及正则表达式的在线测试工具
XML中的节点关系包括:父(parent)、子(children)、同胞(sibling)、先辈(ancestor)、后代(descendant).
常用的路径表达式:
常见的表达形式:
谓语用来查找某个特定的节点或者包含某一个特定的值的节点,被嵌在方括号中。
常见的表达式有:
选取未知节点
xpath的语法在应用的时候需要将Python抓取的网页转化为xml.
如果元素的名字过长,找不到其他较短的元素名,可以考虑正则表达式,或者使用contains,即:
注:
Beautiful Soup 将复杂HTML文档转化成一个复杂的属性结构,每一个节点都是python对象,归纳为四类:Tag,NaviableString,BeautifulSoup,comment.
Tag是HTML中的标签。Tag的属性有.
NavigableString:用来获取标签内部的文字。
BeautifulSoup对象表示一个文档的内容,大多数情况下,将它看作是Tag对象。
Comment是特殊的NavigableString对象,其输出的内容不包括注释符号。
遍历文档树:
- 直接遍历子节点:
- 所有子孙节点: 属性,对所有tag的子孙节点进行递归循环。
- 节点内容::如果一个节点没有标签,则该属性会返回该节点里面的内容。如果只有唯一的一个标签,那么将返回最里面的内容。
搜索文档树
1)传字符串:BeautifulSoup将会匹配查找与字符串完整匹配的内容
2)传正则表达式。如果传入正则表达式作为参数,BeautifulSoup会通过正则表达式的来匹配内容。
3)传列表。BeautifulSoup会将于列表中任一元素匹配的内容返回。
如:
4)关键词参数:
css(教程)查找
标签名不加任何修饰,类名前加.,id名前加#.返回类型为
1)通过标签名查找。如
2)通过类名查找。如
3)通过id查找。如
4)组合查找。如
5)属性查找。如:
6)获取内容。如: