前言
我们前面更新爬虫实战的一些文章,从今天起,我们重点讲解关于parsel解析库的实战技巧,通过实战,我们来学习其强大的功能。
我们先来认识一下什么是parsel库。
Parsel是一个用于解析JSON数据的Python库。它提供了一个简单易用的API,可以轻松地从JSON文件或字符串中解析数据。可以对 HTML 和 XML 进行解析,并支持使用 XPath 和 CSS Selector 对内容进行提取和修改,同时它还融合了正则表达式提取的功能。功能灵活而又强大。
采集数据
我们上一篇介绍了,如何采集大学教务系统里面的成绩单,把自己的成绩采集下来。今天,我们来采集当当网里面的商品信息。之前,我们基本上都是用正则表达式来获取数据的,今天,我们使用parsel方法来获取数据。
发送请求
我们首先确定我们的目标网址,对我们需要获取的数据。这个是我们爬取任何网页都要做的第一步。

我们要把每一个图书的数据获取下来,我们接下来用到开发者工具。我们看图书名字和价格是在什么位置。是不是在网页源代码中。接下来,我们发送请求,获取网页源代码。

我们可以观察到,每一个商品信息都放在<li>标签里面。我们只要提取<li>标签里面的内容即可。
我们现在开始写代码。
url="http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-recent7-0-0-1-1"
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
response=requests.get(url=url,headers=headers)
代码使用requests库的get()函数来请求这个URL,并将结果存储在变量res中。
获取数据
selector=parsel.Selector(response.text)
lis=selector.css('.bang_list li')
print(lis)
我们使用 css 方法选择了所有的列表项,并使用 xpath 方法选择了所有包含 .bang_list li 类的列表项。也就是我们上面提到的<li>标签里面的内容。 我们看看效果怎么样。

for li in lis:
name=li.css('.name a::attr(title)').get()
conment=li.css('.star a::text').get()
price_n=li.css('.price .price_n::text').get()
price_r=li.css('.price .price_r::text').get()
price_s=li.css('.price .price_s::text').get()
css 方法用于选择元素的 CSS 样式。在上面的示例中,我们使用 css 方法选择了所有的列表项,并使用 xpath 方法选择了所有包含 .name a::attr(title) 类的列表项。
然后,我们使用 get() 方法获取了列表项中每个元素的 name 属性,以及 star 类中每个元素的 text 属性。
最后,我们使用 get() 方法获取了列表项中每个元素的 price_n 属性,以及 price_r 和 price_s 属性。
保存数据
保存数据就简单了,我们已经练习了很多次。
f=open('./data.csv', mode='a', encoding='utf-8', newline='')
csv_writer=csv.DictWriter(f,fieldnames=[
'name',
'conment',
'price_n',
'price_r',
'price_s',
])
这段代码首先打开一个名为 data.csv 的文件,并指定使用 a 模式打开文件。然后,使用 csv.DictWriter() 函数创建一个 CSV 写入器,并指定要写入的列名。在这个例子中,我们指定了 fieldnames 参数,它包含了我们要写入的列名。
接下来,我们使用 csv_writer.writeheader() 方法写入列名。这个方法会将列名写入文件的第一行。
最后,我们使用 csv_writer.writerow() 方法写入数据。
我们先写入字典。
dit = {
'name':name,
'conment':conment,
'price_n':price_n,
'price_r':price_r,
'price_s':price_s,
}
csv_writer.writerow(dit)
这段代码创建了一个字典dit,其中包含了每个元素的值。然后,它使用csv_writer.writerow()方法将字典写入CSV文件中。

我们可以看到,我们已经把数据获取下来了,我们这里发现了,其css语法和我们之前说的一样,这个功能太强大了。
总结
本文主要介绍了parsel库的实战技巧,包括如何采集数据、发送请求和获取数据等方面的内容。通过实战,我们可以学习到parsel库的强大功能,包括对HTML和XML的解析、XPath和CSS Selector的使用以及正则表达式提取的功能。
如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~

③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!

2️⃣国内外Python书籍、文档
① 文档和书籍资料

3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!

②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!

③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!

4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


本文介绍了如何使用Python的Parsel库进行数据采集,通过实战演示了发送请求、解析HTML和XML结构,以及使用XPath和CSSSelector提取商品名称、评论和价格等信息,最后将数据保存到CSV文件中。
7358

被折叠的 条评论
为什么被折叠?



