2017-04-05 90 views
2

DOM樹中實際不存在僞元素(例如::before::after)中的內容。所以,通過選擇器找到它是不可能的。網絡蜘蛛如何抓取::之前的內容?

問題是,我怎麼能提取它的內容?例如:

<div>This is <span></span>n apple.</div> 
... 
span::before { 
    content : "a" 
} 

shows : This is an apple. 

但如果我提取div的文字,我只會變得This is n apple.沒有span::before內容。

我該如何處理這個問題?

+0

瀏覽器的做法是一樣的嗎? (通過解析和應用CSS ...) – nnnnnn

+0

Dupe? http://stackoverflow.com/questions/16003916/is-css-content-property-seo-friendly –

+0

@ Mr.Alien不,這是一個關於如何抓取包含僞元素的第三方網站的問題。 – Sraw

回答

1

我該如何處理這個問題?

老實說,通過不使用僞元素爲此目的。

僞元素專門用於呈現文檔樹之外的內容。

該「生成的內容」由::before::after僞元素的content屬性指定,通常用於純粹添加化妝內容。

因此,搜索引擎應該沒有理由對生成的內容進行索引。

https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements

+1

這,如果您正在爲使用此類內容生成內容的第三方網站進行爬網,那麼對您來說太糟糕了。 – BoltClock

+0

哦,我可以看到這個用途。如果DOM樹的內容實際上是「蘋果」(例如,帶有圖片或其他內容的標識符,「apple」,「pear」等),並且您想用適當的文章來修飾這些內容。像這樣的東西。但是,當然在這些情況下,沒有必要刮掉添加的單詞。 –

+0

@BoltClock指出了這個問題,我需要抓取第三方網站。而這一點,使用僞元素來顯示正常的內容,是一種反爬行技術。 – Sraw