parsel 是scrapy 出品的,也是scrapy内置的选择器包含re、css、xpath选择器,依赖lxml,比起bs4好用的不要不要的。
用过scrapy,再用它,其实都是一样的,scrapy团队把它单独出来了个库,这样可以单独使用,不必使用scrapy
- 安装:
pip install parsel
oreasy_install parsel
- 结合requests
from parsel import Selector
import requests
url = "https://news.baidu.com/"
body = requests.get(url).text
selector = Selector(text=body)
简单例子开始:
3.xpath:
title = selector.xpath("//title/text()").extract_first()
# 返回list 把所有匹配的值都返回
#title = selector.xpath("//title/text()").extract()[0]
print title
# 百度新闻——全球最大的中文新闻平台
4.正则re:
#默认是返回list
title = selector.re("<title>(\S+)</title>")[0]
print title
# 百度新闻——全球最大的中文新闻平台
5.css:
title = selector.css("title::text").extract_first()
print title
# 百度新闻——全球最大的中文新闻平台
6.re和xpath结合:
title = selector.xpath("//title/text()").re("(\S\S)")[0]
print title
# 百度
7.css+re:
title = selector.css("title::text").re("(\S\S)")[0]
print title
# 百度
8.其他:
做遍历:
for p in divs.xpath('.//p')
... print p.extract()
更多发现请详细查看官方文档: 链接