parsel库的使用


parsel

parselAPIScrapy选择器的API高度相似,因为Scrapy选择器的是二次封装了parsel,类似于requesturllib.

parsel可以解析XMLHTML,支持XpathCSS选择器对内容的提取,同时融合了正则表达式,可以说是前面几个工具的综合.

使用实例

html = '''
<div id='container'>
    <li class='list'>first</li>
    <li><a href = 'item2'>second</a></li>
    <li><a href = 'item3'><span>third</span></a></li>
    <li><a href = 'item4'>fourth</a></li>
    <li><a href = 'item5'>fifth</a></li>
</div>
'''
from parsel import Selector
selector = Selector(text = html)  ##调用Selector类构造一个Selector对象
css1 = selector.css('#container')  ##传入css选择器
css2 = selector.css('li')  ##传入css选择器,这个返回的是一个可迭代对象
xml1 = selector.xpath('//li[contains(@class,"list")]')
xml2 = selector.xpath('//li/a[@href="item2"]')

for item in css1:
    print(item)
    print(item.xpath(".//text()").get()) ##遍历获取文本内容

result_href = xml2.css('a::attr(href)').get()  ## css获取属性
print(result_href)
result_href = xml2.xpath('//a/@href').get()  ##xpath获取属性
print(result_href)
## 正则的使用
re = selector.re('<li><a.*?>.*?</a></li>')
print(re)
re = selector.re_first('<li><a.*?>.*?</a></li>')
print(re) ##返回第一个匹配字符串

Author: Dovahkiin
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Dovahkiin !
  TOC