成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一日一技:爬蟲如何正確從網頁中提取偽元素?

網絡 通信技術
我們來看一個網頁,大家想想使用 XPath 怎么抓取。可以看到,在源代碼里面沒有請抓取我!這段文字。難道這個網頁是異步加載?我們現在來看一下網頁的請求。

我們來看一個網頁,大家想想使用 XPath 怎么抓取。

 

可以看到,在源代碼里面沒有請抓取我!這段文字。難道這個網頁是異步加載?我們現在來看一下網頁的請求:

 

網頁也沒有發起任何的Ajax 請求。那么,這段文字是從哪里來的?

我們來看一下這個網頁對應的 HTML:

 

整個 HTML 里面,甚至連 JavaScript 都沒有。那么這段文字是哪里來的呢?

有點經驗的同學,可能會想到看一下這個example.css文件,其內容如下:

 

沒錯,文字確實在這里面。其中::after,我們稱之為偽元素(Pseudo-element)[1]。

對于偽元素里面的文字,應該如何提取呢?當然,你可以使用正則表達式來提取。不過我們今天不準備講這個。

XPath 沒有辦法提取偽元素,因為 XPath 只能提取 Dom 樹中的內容,但是偽元素是不屬于 Dom 樹的,因此無法提取。要提取偽元素,需要使用 CSS 選擇器。

由于網頁的 HTML 與 CSS 是分開的。如果我們使用 requests 或者 Scrapy,只能單獨拿到 HTML 和 CSS。單獨拿到 HTML 沒有任何作用,因為數據根本不在里面。單獨拿到 CSS,雖然有數據,但如果不用正則表達式的話,里面的數據拿不出來。所以 BeautifulSoup4的 CSS 選擇器也沒有什么作用。所以我們需要把 CSS 和 HTML 放到一起來渲染,然后再使用JavaScript 的 CSS 選擇器找到需要提取的內容。

首先我們來看一下,為了提取這個偽元素的值,我們需要下面這段Js 代碼:

window.getComputedStyle(document.querySelector('.fake_element'),':after').getPropertyValue('content')

其中,ducument.querySelector的第一個參數.fake_element就表示值為fake_element的 class 屬性。第二個參數就是偽元素:after。運行效果如下圖所示:

 

為了能夠運行這段 JavaScript,我們需要使用模擬瀏覽器,無論是 Selenium 還是 Puppeteer 都可以。這里以 Selenium 為例。

在 Selenium 要執行 Js,需要使用driver.execute_script()方法,代碼如下:

 

提取出來的內容最外層會包上一對雙引號,拿到以后移除外側的雙引號,就是我們在網頁上看到的內容了。

參考資料

 

[1]偽元素(Pseudo-element): https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-elements

本文轉載自微信公眾號「未聞Code」,可以通過以下二維碼關注。轉載本文請聯系未聞Code公眾號。

 

責任編輯:武曉燕 來源: 未聞Code
相關推薦

2022-03-12 20:38:14

網頁Python測試

2021-06-08 21:36:24

PyCharm爬蟲Scrapy

2024-07-30 08:16:18

Python代碼工具

2023-10-28 12:14:35

爬蟲JavaScriptObject

2022-03-07 09:14:04

Selenium鼠標元素

2021-09-14 21:29:01

項目環境變量

2021-10-15 21:08:31

PandasExcel對象

2025-05-28 03:15:00

Scrapy數據sleep

2024-10-16 21:47:15

2021-12-15 22:04:11

瀏覽器重復登錄

2022-06-28 09:31:44

LinuxmacOS系統

2024-07-30 08:11:16

2024-01-29 00:45:36

跨域后端接口

2024-11-11 00:38:13

Mypy靜態類型

2021-05-08 19:33:51

移除字符零寬

2022-08-26 09:34:19

單元測試代碼項目

2022-01-26 07:35:10

爬蟲Requestsgzip

2021-09-26 05:01:55

Scrapy項目爬蟲

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2021-04-12 21:19:01

PythonMakefile項目
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 综合久| 亚洲成人精品在线 | 羞羞色网站 | a级黄色片视频 | 中文字幕高清 | 国产一区二区三区久久久久久久久 | 中文字幕专区 | 久久免费看 | 国产精品亚洲欧美日韩一区在线 | 中文字幕在线一区 | www久久99| 日韩在线观看网站 | 中文字幕一级 | 九九九国产 | 中文二区| 欧美日韩免费在线 | 一区二区三区四区在线播放 | 最新国产精品 | 日韩中文字幕在线视频观看 | 欧美精品一区二区三区在线四季 | 日韩视频一区二区 | 91免费高清 | 欧美区精品 | 亚洲视频二区 | 久草色视频 | 一区二区三区福利视频 | 在线激情视频 | 国产精品久久一区 | 国产99精品 | 欧美国产一区二区三区 | 日韩在线播放网址 | 奇米在线| 亚洲国产激情 | 最新国产精品精品视频 | 成人av资源在线 | 欧美 中文字幕 | 一级黄色夫妻生活 | a视频在线观看 | 天天综合91 | 国产激情精品一区二区三区 | 中文字幕亚洲区一区二 |