前言
以前抓網頁都是直接requests+bs4直接剛的,今天想拿一下拉鈎的數據,就繼續按照以下步驟來了:
- 先找個想爬的網頁,然后寫解析功能
- 批量爬,然后解析
- 入庫
探究
結果發現行不通了,用bs4去解析,結果連title都拿不到,而網頁源碼里明明是有的!於是用瀏覽器打開網頁然后view source,在view source頁面點擊存儲為文件,然后用vscode打開保存的網頁,進行對比。發現,tmd內容居然不一樣……好多標簽在保存的網頁中根本看不到。
原因
想一下原因,肯定是js造成的。於是又搜了一下這種現象,得知:
保存源代碼”是對源代碼完整的保存下來,包括上面的圖片鏈接,超鏈接的指向,都完完整整按照原本的樣式保存下來了。並沒有保存圖片或者其他的一些文件。 而另存為的時候由瀏覽器(IE)自動生成一個和保存的網頁文件名 + .files的文件夾,該文件夾中保存了網頁上面所有的圖片及一些外部鏈接CSS、Js腳本,並自動對網頁上的鏈接進行修改,指向以網頁文件名+.files的文件夾,這樣就看其來整個網頁是完整保存下來了。
原來是瀏覽器的處理過程導致的,view source就是真的只能看到源代碼里,未經瀏覽器處理的代碼…有些非靜態的東西,自然得等加載出來后才能看到…唔
