持续创作,加速生长!这是我参加「掘金日新计划 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)
咱们运用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
目标的运用,以便更精确地指定挑选的元素。