爬虫高级语法

一.XPath解析     (解析xml/html

1.安装lxml库:

pip install lxml


2.导包:

from lxml import etree


3.html转xml文档:

xml_html=etree.HTML(提取的html代码名)

4.tostring自动补全代码:

xml=etree.tostring(xml_html)


5.xpath解析:

result=xml.xpath('语法')


6.遍历:

for i in result:

        print(i)

注:

//: 表示从任意位置开始
/: 表示根节点开始
@:表示当前属性
[]: 表示当前属性的过滤条件
text(): 获取内容

二.BeautifulSoup解析     解析XML,HTML

安装:

pip install BeautifulSoup4
pip install lxml

导包:

from bs4 import BeautifulSoup


实例化对象:

soup=BeautifulSoup(html,'lxml')   html:要解析的内容  lxml:解析器

获取文本内容:soup.string
 

1. 用标签选择器解析.find_all()

result=soup.find_all('标签')
获取内容.get_text():
for i in result:
    print(i.get_text())
根据属性查找:        
result=soup.find_all('li',{'class':'element'})

2 .用css选择器解析.select()

   class类名前加.
   id类名前加#
   本层级之间不加空格,下一级用空格隔开
   其他和标签选择器相似

三.正则表达式解析    (html)

导包:

import re

3.1 re.match()
3.2 re.search() 匹配第一个数据   推荐

    常用:   /s:空格
                  /d:数字
                  .*?:非贪婪模式
                  re.S:有换行在,添加这个就行

例:
   <li data-view="4" class="active">
        <a href="/3.mp3" singer="齐秦">往事随风</a>
    </li>
    r = re.search('<li\sdata-view="4".*?<a.*?singer="(.*?)">(.*?)</a>',html,re.S)


3.3 re.findall()  匹配所有数据   
3.4 re.sub()  替换


替换:re.sub('正则表达式','要替换的内容',原字符串)
追加:re.sub('正则表达式',r'\1 要替换的内容',原字符串)  r:表示追加  \1:表示保留原内容

四.jsonpath解析     (json数据)

安装:

pip install jsonpath

导包: 

from jsonpath import jsonpath

解析:

title=jsonpath(形参,'$..title')


遍历:

for i in title:

        print(i)

调用时需传实参

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dull_Demon_King

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值