如果你不是科班出身,沒有開發經驗,初次接觸開發爬蟲這檔子事兒,相信這篇文章能幫到你。
python開發爬蟲肯定是有門檻的。儘管python很簡單,上手不難,但是開發起來你會發現,開發爬蟲不只是單單會python就可以了,你還得需要下列這些技能。
01用python開發爬蟲你需要擁有前端知識
爬蟲是什麼?爬蟲其實是一個抓取網際網路信息的一個功能or一個軟體。爬蟲的工作原理很簡單,你給它一個地址,它自己就會按照你編寫好的邏輯,一步一步獲取你想要的網頁或者app的特定信息。
為什麼是特定信息,其實我們開發爬蟲主要做的事情就是獲取特定信息的,你全部一股腦的都收集起來也沒什麼意義。
怎麼樣獲取特定信息,這就需要你了解前端,知道怎麼分析html結構,會用F12打開瀏覽器調試工具,找到你要的內容。比如

怎麼拿到第一條推薦的新聞,按照剛才說的需要知道這條新聞在首頁裡面的html結構
我們F12打開瀏覽器開發者工作,我用的是chrome
滑鼠先點擊一下開發者工具裡面的左邊的箭頭,然後在點擊一下頁面上的你要獲取的新聞標題,這時候開發者工具就幫我們定位到你要獲取的新聞標題位置了,接著你在開發者工具裡面找到定位的位置,滑鼠右鍵
然後選擇copy->copy selector 這就是拷貝當前位置的選擇器,也就是類似css的選擇器,粘貼出來是這樣的 #js_top_news > h2:nth-child(1) > a
想了解這句選擇器是什麼意思的,可以去學習一下css選擇器,這是最快的一種查找方式。如果你css比較好,你可以自己手寫出來更加直接的選擇器。目的都一樣就是要定位到我們所要信息的精確位置。
02要有分析目標頁面的能力
這一點兒是最重要,為什麼這樣說呢,因為剛才上面你們看到的只是最簡單的一種尋找目標源的方法。現在很多網站都有防爬蟲技術。碰到這種情況,用我們上面介紹的方法是沒有辦法找到真正的路徑。比如抓取雲音樂想找到詳細的路徑列表是很困難的如:
這首音樂如果你想抓下來直接F12查看html結構是獲取不到真實的音樂路徑的,因為網易雲音樂做了反扒處理,用js拼出了真實的地址。
所以這個時候得耐心地去分析頁面資源,用我們剛才說的瀏覽器開發工具,或者藉助第三方抓包工具如fiddler,去分析頁面真正的請求路徑和請求參數。這裡還用瀏覽器自帶的開發工具去找這首音樂的真實地址,如圖
我們可以通過network標籤頁面去找真實的請求地址,按照圖上的1、2、3、4步驟去找一下你會發現這首《相思》的真實路徑是這樣的
這是一個動態路徑,所謂動態路徑這個地址其實是有時效性的,就是短時間內可以請求下載,過了時間地址失效想下載需要重新找到新的地址。
有的朋友會問,如果我想批量的下載網易雲音樂該怎麼辦?一個地址一個地址這樣的去找,然後自己用excel收集地址最後批量去下載。如果你真這樣幹了,最後你會發現最終下載不下來,主要原因就是這些地址都是動態拼接的有時間限制看到路徑第二個文件夾了嗎是個時間戳20200404220828,這就是過期時間,一個地址的有效期大概是25分鐘。
你會發現爬蟲與反爬蟲是一場永無休止的戰爭,沒有抓不下來的數據,只有不會分析頁面的開發人。
爬蟲的重點不是抓而是在怎麼分析頁面結構得到真實的目標地址。所以說學習爬蟲的重點應該放在分析頁面上。分析頁面尋找真實url不是一件容易事兒,這個門檻還算是蠻高的。
找到真正的地址後,用大概五行的代碼就下載下來了。