f12获取网页文本_【教程】如何抓取动态网页内容
背景
很多時候,很多人,需要去抓取網頁中某些特定內容。
但是,除了之前介紹過的,想要提取某些,靜態網頁,中的特定內容,比如:
和
之外,有些人會發現,對于其所要抓取網頁中的內容,網頁源碼中卻沒有。
所以,此時,就不知道如何實現了。
此處,就來解釋一下,如何抓取所謂的動態網頁中的特定內容。
前提知識
在看本文之前,你需要具備相關的基礎知識:
1.抓取網頁,模擬登陸等相關的邏輯
如果不熟悉,可參考:
2.學會用工具,比如IE9的F12,去抓取對應的網頁執行的過程
不熟悉的可參考:
3.對于普通的靜態網頁,如何提取所需的內容
對此不熟悉的,可以參考:
(1)Python版:
(2)C#版:
什么是動態網頁
此處所謂的動態網頁,是相對于那些靜態網頁來說的。
而此處所說的靜態網頁,指的是,對于通過瀏覽器中查看網頁源碼時,看到的網頁源碼中的內容,和網頁顯示的內容,都是對應的。
換句話說,我想要獲得網頁上顯示的某個內容時,都是可以通過查找網頁源碼,而找到對應的部分的。
而動態網頁,與此相反,想要獲得動態網頁中的特定的內容,通過直接查看網頁源碼,是找不到的。
動態網頁中的動態的內容是從哪里來的
所以,這里就涉及到一個問題了:
所謂的動態網頁中的動態內容,到底是從哪里來的?
概括的說,就是通過其他手段生成或者獲得的。
目前我所了解到的,有幾種:
本地的Javascript腳本所生成的
如果你去用IE9的F12去分析你訪問一個url的過程時,你就會發現,其中很可能會涉及到,
在一個網頁正常完全顯示之前,期間會訪問到很多javascript腳本,簡稱js腳本或js。
這些js腳本,就是實現了很多動態交互的內容的。
其中,對于你所要抓取的一些內容,有時候,就是這些js腳本動態執行,最終計算出來的。
通過訪問另外一個url地址獲得的
很多時候,有些內容,是訪問了另外一個url地址后,所返回的數據;
如何獲得我所要抓取的動態內容
其實,對于如何抓取所需的動態內容,簡單一點來說,就一種解決辦法:
根據你通過工具分析出來的結果,自己找到對應的數據,去提取出來;
只不過,這個數據,有時候是直接在分析結果過程中直接能提取出來的,有時候可能是js計算出來的。
想要抓取數據,是由js腳本生成的
雖然最終的動態內容,有的是js腳本執行所生成的,但是對于你想要抓取的數據:
如果所要抓取內容和js執行邏輯有關系:那就得靠自己去分析,調試js執行的過程,最終找到是如何一點點計算出來最終你需要的值的;
如果所要抓取內容和js執行沒關系:即,雖然你想要抓取的內容,是js執行生成的,但是最終還是可以在別的某個js文件或者其他返回的html代碼中可以直接獲得,那么你自然可以不用關系數據是如何來的,而直接去提取即可,即從特定的字符串中,提取你要的對應的內容。
想要抓取數據是訪問另一個url所得到的
如果對應的你所要抓取的內容,是需要訪問另外一個url地址,所返回的數據,那么很簡單,你還需要另外去訪問此url,然后獲得對應的返回的內容,從中提取你要的數據的。
總結
還是那句話,不論你訪問的內容,是哪種方式生成的,最終,都還是可以通過工具,去分析出來對應的內容,是如何從無到有生成的。
然后用代碼模擬出來此過程,最終提取出你所需要的內容而已;
總結
以上是生活随笔為你收集整理的f12获取网页文本_【教程】如何抓取动态网页内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python序列是几维_从一个1维的位数
- 下一篇: TensorFlow 常见API