python爬虫常用解析HTML模块及方法速查

Beautifulsoup():

1、获取节点:soup=Beautiful(html文本,features="lxml)

soup.head     #获取head节点

2、获取节点名称:soup.head.name

3、获取节点属性:soup.meta.attrs

4、获取属性中节点对应的值:soup.meta.attrs['http-equiv']   # 获取http-equiv属性对应的值

        soup.meta.attrs['href']          # 获取link节点中的href属性对应的值

        soup.meta.attrs['class']        # 获取div节点中class属性对应的值

        # 不加attrs,在节点后面直接加属性名称也可以获取对应的值

        如soup.meta['http-equiv']或soup.meta['href']

5、获取节点包含的文本内容:soup.title.string       # 获取title包含的文本内容

        又比如:soup.h3.string        

6、 嵌套获取节点内容: soup.head.title.string        # 获取head下title节点的文本内容

find_all():

1、通过节点名称获取内容:soup.find_all(name='p')         # 获取所有名称为p的节点内容

        soup.find_all(name='p') [0]              # 不言而喻

2、嵌套获取:soup.find_all(name='p')[0].find_all(name='a')

3、根据属性获取内容:soup.find_all(attrs={'value':'1'})       # 获取属性value值为一的所有内容

        soup.find_all(class_='p-1')        # 获取class为p-1的所有内容    class_  不是class

4、 获取节点中的文本:soup.find_all(text=re.compile('Python))    # 获取正则表达式的内容

find():

获取第一个匹配的节点:

        soup.find(name='p')

        soup.find(text=re.compile('Python'))        # 只去查找第一次出现的,找到后停止

select():

1、获取所有指定节点内容:soup.select('p')        # 获取所有p节点内容

2、索引获取节点:soup.select('p')[1]       # 获取所有节点中的第二个节点

3、 逐层获取: soup.select('html head title')        # 逐层递进

4、 类名获取:soup.select('.test_2')        # 获取类名为test_2的所有节点

5、id值获取:soup.select('#class_1')         # 获取id为class_1所对应的节点

6、 与上面相似,可以用来嵌套,获取属性,和获取文本

比如:soup.select('p')[1:]                 # 获取p节点中第二个以后的p节点

        soup.select('a[href]')                 # 获取存在href的所有a节点

        soup.select('p')[0].get_text()

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值