持续创作,加速生长!这是我参加「掘金日新计划 4 月更文应战」的第11天,点击检查活动详情

⭐️网页解析利器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)

【Python实战】Python中parsel两种获取数据方式

咱们运用requests.get()函数来发送HTTP恳求,并将呼应存储在responses变量中。在这个比如中,咱们将呼应的文本内容存储在responses.text变量中。

解析数据

咱们获取到了网页源代码之后,咱们运用parsel办法对其解析,处理网页源代码。

selector = parsel.Selector(responses.text)

【Python实战】Python中parsel两种获取数据方式

咱们运用parsel库的Selector目标来挑选responses.text中的特定元素。

咱们运用开发者东西,调查标题在哪个标签位置里边。

【Python实战】Python中parsel两种获取数据方式
【Python实战】Python中parsel两种获取数据方式​编辑

由上图,咱们能够看到,咱们标题信息就在

  • 标签里边。咱们能够提取
  • 标签里边一切的内容。在这儿,咱们只获取新闻的标题内容。下面咱们将用两种办法获取。

    ✨XPATH办法

    【Python实战】Python中parsel两种获取数据方式
    【Python实战】Python中parsel两种获取数据方式

    咱们很容易获取到了标签地点的位置,大家不会写的话,能够右击copy—xpath。咱们来写代码。

    titles = selector.xpath('/html/body/div[4]/div[1]/div[2]/ul/li/div[2]/a/text()').getall()
    

    【Python实战】Python中parsel两种获取数据方式

    xpath办法是Selector目标中的一个办法,用于指定 XPath 表达式,它能够用于挑选 HTML 元素。在这个比如中,咱们运用xpath办法来挑选/html/body/div[4]/div[1]/div[2]/ul/li/div[2]/a/text()表达式指定的一切<a>元素,并将它们的文本内容作为列表返回。

    咱们这儿会得到一个一切新闻的标题列表,咱们for遍历一下。咱们看看效果。

    【Python实战】Python中parsel两种获取数据方式
    【Python实战】Python中parsel两种获取数据方式

    ✨CSS办法

    咱们刚刚用了XPATH的办法获取新闻的标题,咱们接下来,咱们运用CSS的办法来获取标题。

    【Python实战】Python中parsel两种获取数据方式
    【Python实战】Python中parsel两种获取数据方式

    咱们这儿,直接写代码了。

    titles = selector.css('ul > li > div.dd_bt a::text').getall()
    

    【Python实战】Python中parsel两种获取数据方式

    css办法是Selector目标中的一个办法,用于指定 CSS 特点,它能够用于挑选 HTML 元素。在这个比如中,咱们运用css办法来挑选ul > li > div.dd_bt a表达式指定的一切<a>元素的文本,并将它们的款式作为列表返回。

    咱们CSS语法还能够这样写。

    titles = selector.css('.dd_bt a::text').getall()
    

    【Python实战】Python中parsel两种获取数据方式

    css办法是Selector目标中的一个办法,用于指定 CSS 特点,它能够用于挑选 HTML 元素。在这个比如中,咱们运用css办法来挑选.dd_bt a::text表达式指定的一切<a>元素,并将它们的文本内容作为列表返回。

    【Python实战】Python中parsel两种获取数据方式
    【Python实战】Python中parsel两种获取数据方式

    咱们会发现是相同的效果,不论怎么样,大家都要会一种办法。

    总结

    在parsel实战中,我完成了一个运用parsel库的挑选器来挑选 特定元素的内容。在这个实战中,我运用了xpathcss办法来指定挑选的元素的位置和款式,运用Selector目标来指定挑选的元素,并运用getall办法来获取挑选的一切元素。

    首要,咱们需求更好地了解xpathcss办法的运用,以便更精确地挑选元素。其次,咱们需求更好地了解Selector目标的运用,以便更精确地指定挑选的元素。