Python爬虫学习记录(3)

继续进行书的第四章

上一章中,作者在实现抓取页面爬取时使用的是正则表达式,但是比较复杂。本章介绍就是一些解析库可以更简单的实现抓取页面。

4.1 使用Xpath

常用方法 etree.HTML etree.tostring () 输出修正后的HTML代码,但是结果是bytes形式 html.xpath()获取响应的路径 子节点 父节点 属性获取都比较简单 不再赘述   

文本获取:如果想要获取子孙节点内部的所有文本,可以直接用//加text()的方式。这样可以保证获取得到最全面的文本信息。但是可能会夹杂一些换行符等特殊字符。如果想获取某些特定子孙节点下的所有文本,可以先选取到特定的子孙节点,然后再调用text()方法获取其内部文本,这样可以保证获取的结果是整洁的。

多属性匹配要用到contains 按序选择需要注意这和Python代码中的不同,序号是以1开头的,不是以0开始的。

4.2使用Beautiful Soup

前面介绍了正则表达式的相关用法,但是一旦正则表达式写的有问题,得到的可能就不是我们想要的结果了。而且对于一个网页来说,都有一定的特殊结构和层级关系,而且很多节点都有id或者class来作区分,所以可以借助它们的结构和属性来提取。

基本用法

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'lxml')

节点选择器

直接调用节点的名称就可以选择节点元素,再调用string属性就可以得到节点内的文本了。

选择元素;提取信息(1.获取名称name 2.获取属性attrs  3.获取内容string);嵌套选择(子节点和子孙节点  父节点和祖先节点   兄弟节点 提取信息)

方法选择器

前面所讲的选择方法都是通过属性来选择,这种方法非常快,但是如果进行比较复杂的选择的话,就比较繁琐,不够灵活。

find_all(name, attrs, recursive, text, **kwargs) 返回所有的   find 返回第一个

CSS选择器因为不是非常熟悉,这里略过,如果后面用到了再来细读。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值