需求分析
今天,一个小伙伴发给我一个网站,我一看,哦,原来是一个歌曲排行榜。我说,这是怎么了。小伙伴说,他在爬取这个网站的时候呢,遇到了一些困难,主要是数据的提取非常的不方便。数据是一大段一大段的写在script标签中的,就算拿到了script标签,想要从中拿到自己所需要的一部分,也挺麻烦的,问我应该怎么办?
我问他说,你是用什么方法提取数据的呢?小伙伴说,就是用beautifulsoup啊,自己学习的时候,老师就是这么教的。我问他,parsel更好用,你为什么不尝试使用一下parsel呢?小伙伴非常疑惑,parsel是一个什么东西呢?好吧,看来这个小伙伴没有好好看我以前的文章啊,不过不要紧,今天我们就来帮助小伙伴解决这个问题
实现分析
关于parsel的使用,以及parsel为什么这么好,我在往期的文章中已经写过了,如果你还不知道的话,可以查看parsel解析器的使用,简单的来说,像这样通过节点和标签不可以直接提取出来的数据,一般要么是使用正则表达式,要么是先使用xpath的提取,然后再使用正则表达式。像bs4虽然既可以使用xpath,又可以使用css选择器,非常的不错,但是如果你使用的是parsel的话,就可以直接使用正则表达式了
在parsel中使用正则表达式,比起原始python中的re模块的使用,还要更简单一些。你只需要写出正则表达式,就可以立刻提取出数据了
因此,我非常的建议,在爬虫的数据提取中可以多使用parsel,尤其是在需要使用正则表达式的情况下。当然,我也观察到现在使用parsel的用户并不是很多,这可能是之前lxml和bs4的使用非常广泛的缘故,不过如果你希望学习更简单,更好的方法,我要强烈的推荐parsel
完整代码展示
import requests
import json
import pandas as pd
f