Python中parsel两种获取数据方式小结
作者:极客飞虎 发布时间:2023-03-01 17:44:50
⭐️网页解析利器parsel实战
我们以实际的案例,来具体了解学习其功能。我们在这里重点讲解其两种方式。一个是XPATH,一个是CSS。我们以某网为例,获取其新闻标题。
🌟 parsel简介
Parsel是一个用于解析JSON数据的Python库。它提供了一个简单易用的API,可以轻松地从JSON文件或字符串中解析数据。可以对 HTML 和 XML 进行解析,并支持使用 XPath 和 CSS Selector 对内容进行提取和修改,同时它还融合了正则表达式提取的功能。功能灵活而又强大。
🌟发送请求
我们先确定目标网址,我们为了让新手更好的学习,我们这里以中国新闻网为例,不讲太复杂的案例。如果,想更好的提升自己,可以尝试学习我之前发的文章。这篇文章使用的方法也是parsel。
我们发送请求,获取数据。我们相信大家这里的代码都会写了。
import parsel
import requests
url = 'https://www.xxxxx.com/importnews.html'
responses = requests.get(url)
responses.encoding=responses.apparent_encoding
print(responses.text)
我们使用requests.get()
函数来发送HTTP请求,并将响应存储在responses
变量中。在这个例子中,我们将响应的文本内容存储在responses.text
变量中。
🌟解析数据
我们获取到了网页源代码之后,我们使用parsel方法对其解析,处理网页源代码。
selector = parsel.Selector(responses.text)
我们使用 parsel
库的 Selector
对象来选择 responses.text
中的特定元素。
我们使用开发者工具,观察标题在哪个标签位置里面。
编辑
由上图,我们可以看到,我们标题信息就在
标签里面。我们可以提取
标签里面所有的内容。在这里,我们只获取新闻的标题内容。下面我们将用两种方式获取。
✨XPATH方式
我们很容易获取到了标签所在的位置,大家不会写的话,可以右击copy—xpath。我们来写代码。
titles = selector.xpath('/html/body/div[4]/div[1]/div[2]/ul/li/div[2]/a/text()').getall()
xpath
方法是 Selector
对象中的一个方法,用于指定 XPath 表达式,它可以用于选择 HTML 元素。在这个例子中,我们使用 xpath
方法来选择 /html/body/div[4]/div[1]/div[2]/ul/li/div[2]/a/text()
表达式指定的所有 <a>
元素,并将它们的文本内容作为列表返回。
我们这里会得到一个所有新闻的标题列表,我们for遍历一下。我们看看效果。
✨CSS方法
我们刚刚用了XPATH的方法获取新闻的标题,我们接下来,我们使用CSS的方法来获取标题。
我们这里,直接写代码了。
titles = selector.css('ul > li > div.dd_bt a::text').getall()
css
方法是 Selector
对象中的一个方法,用于指定 CSS 属性,它可以用于选择 HTML 元素。在这个例子中,我们使用 css
方法来选择 ul > li > div.dd_bt a
表达式指定的所有 <a>
元素的文本,并将它们的样式作为列表返回。
我们CSS语法还可以这样写。
titles = selector.css('.dd_bt a::text').getall()
css
方法是 Selector
对象中的一个方法,用于指定 CSS 属性,它可以用于选择 HTML 元素。在这个例子中,我们使用 css
方法来选择 .dd_bt a::text
表达式指定的所有 <a>
元素,并将它们的文本内容作为列表返回。
我们会发现是一样的效果,不管怎么样,大家都要会一种方法。
🌟总结
在parsel实战中,我完成了一个使用 parsel
库的选择器来选择 特定元素的内容。在这个实战中,我使用了 xpath
和 css
方法来指定选择的元素的位置和样式,使用 Selector
对象来指定选择的元素,并使用 getall
方法来获取选择的所有元素。
首先,我们需要更好地理解 xpath
和 css
方法的使用,以便更准确地选择元素。其次,我们需要更好地理解 Selector
对象的使用,以便更准确地指定选择的元素。
到此这篇关于Python中parsel两种获取数据方式小结的文章就介绍到这了,更多相关Python parsel获取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
来源:https://juejin.cn/post/7224074551524966459


猜你喜欢
- typing库一、 简介Python是一门弱类型的语言,很多时候我们可能不清楚函数参数类型或者返回值类型,很有可能导致一些类型没有指定方法,
- 初级第一次在linux下安装mysql-5.7.19版本教程,如果已经会安装了,那么请看下一篇linux下安装多个mysql-5.7.19环
- 方法方法能给用户自定义的类型添加新的行为。它和函数的区别在于方法有一个接收者,给一个函数添加一个接收者,那么它就变成了方法。接收者可以是值接
- 1. 前言但是对于很多人来说,首先编写一款 App 需要一定的移动端开发经验,其次还需要另外编写无障碍服务应用,如此显得有一定难度的本篇文章
- 背景:文件内容每一行是由N个单一数字组成的,每个数字之间由制表符区分,比如:0 4 3 1 2 2 1 0 3 1 2 0 ……现在需要将每
- 以下是服务端代码var HTTPREQUEST_PROXYSETTING_DEFAULT = 0;var&nb
- 在Python我们要判断一个文件对当前用户有没有读、写、执行权限,我们通常可以使用os.access函数来实现,比如:# 判断读权限os.a
- 如何在线创建新表?下面我们以建立一个数码相机库用表为例,看看在ASP程序代码中使用 [CREATE TABLE 相机 (品牌 TEXT(10
- 作为面向对象编程中实现控制反转(Inversion of Control,下文称IoC)最常见的技术手段之一,依赖注入(Dependency
- 引言知乎上有个热门问题,Python 未来会成为大众办公常用编程工具吗?在编程世界里,Python已经是名副其实的网红了。曾经一个学汉语言的
- 1.乘法和幂运算符● 单个 * 用于乘法运算● 两个 ** 表示幂运算>>> 2*3>>> 6>&
- 实例如下:from win32com.client import Dispatch import win32com.client
- 摸到她了!青翠的衣衫,奶白的肌肤,捧在手上的感觉真是太好了,心里美滋滋的。《悟透JavaScript》,一本偶然之作,终于成书并出版了。本书
- pyd文件生成安装easycython库pip install easycythontest.pydef test(): pri
- 在本地windows机器开发的Django项目运行正常,放到服务器上后响应超慢,花了一整个工作日没找到原因(非常绝望),又花了一整个周末才找
- 一.图像采样处理原理图像采样(Image Sampling)处理是将一幅连续图像在空间上分割成M×N个网格,每个网格用一
- jquery模拟SELECT框,效果图如下: <!DOCTYPE html> <html lang="
- 一:购物车管理功能1.添加商品(不重复添加)、2.删除商品(购物车中有的才能删除)、3.查看购物车4.退出系统产品列表products =
- 本文为大家分享了SQLServer存储过程中事务的使用方法,具体代码如下create proc usp_Stock@GoodsId int,
- 适配竖屏横向尺度,禁止出现横向滚屏常规QVGA机型竖屏状态下,14号字体,单行仅显示13.5个字。资讯频道的新闻短标题要控制在13字以内才能