男女做羞羞事網站現(xiàn)在學seo課程多少錢
Python 網絡爬蟲入門:Spider man的第二課
- 寫在最前面
- 觀察目標網站
- 代碼編寫
- 第二課總結
寫在最前面
有位粉絲希望學習網絡爬蟲的實戰(zhàn)技巧,想嘗試搭建自己的爬蟲環(huán)境,從網上抓取數(shù)據(jù)。
前面有寫一篇博客分享,但是內容感覺太淺顯了
【一個超簡單的爬蟲demo】探索新浪網:使用 Python 爬蟲獲取動態(tài)網頁數(shù)據(jù)
本期邀請了擅長爬蟲的朋友@PoloWitty,來撰寫這篇博客。通過他的專業(yè)視角和實戰(zhàn)經驗,一步步引導我們入門,成為一名數(shù)據(jù)探索的“Spider Man”。
【Python網絡爬蟲入門教程1】成為“Spider Man”的第一課:HTML、Request庫、Beautiful Soup庫
【Python網絡爬蟲入門教程2】成為“Spider Man”的第二課:觀察目標網站、代碼編寫
【Python網絡爬蟲入門教程3】成為“Spider Man”的第三課:從requests到scrapy、爬取目標網站
隨著互聯(lián)網數(shù)據(jù)的指數(shù)級增長,了解如何有效地提取這些信息變得越來越重要。無論是文本模型如ChatGPT,還是視覺模型如Stable Diffusion,它們的訓練數(shù)據(jù)大多來源于互聯(lián)網的海量數(shù)據(jù)。在這個日新月異的大數(shù)據(jù)時代,爬蟲也算是其中不得不點的一項基礎技能樹了。
本系列文章將深入淺出地介紹Python網絡爬蟲的基礎知識和技術,從 Requests 庫到 Scrapy 框架的 入門級
使用,為你開啟python網絡爬蟲的大門,成為spider man的一員,并最終以ScrapeMe網站作為目標示例,爬取下網站上的可愛又有趣的寶可夢照片。
在開始之前,還要啰嗦幾句疊個甲,網絡爬蟲雖然強大,但在使用時必須遵守法律法規(guī)和網站的爬蟲協(xié)議。不違法爬取數(shù)據(jù),遵守相關法律法規(guī)哦~
這是本系列的第二篇文章,將會以ScrapeMe網站作為示例,展示如何使用第一課中學到的基礎知識來對網站上的寶可夢圖片進行爬取。
觀察目標網站
首先,我們需要先對我們需要爬取的目標網站及目標內容進行一番觀察。
直接點進目標網站,我們可以看到如下內容:
我們想要爬取的目標圖像就處于中間位置。
再觀察一下如何獲取到不同page上的所有圖片,點擊不同page并觀察對應的鏈接地址可以發(fā)現(xiàn),通過在請求的地址鏈接中加入page參數(shù),便可以訪問不同的鏈接了。比如https://scrapeme.live/shop/page/2/?orderby=popularity
,就是第二個page對應的鏈接地址,通過不斷更換page后面的參數(shù),便可以訪問到不同的page了。
代碼編寫
通過上面的觀察分析,我們的爬蟲代碼思路便很清晰了:
- 通過改變
url=f'https://scrapeme.live/shop/page/{pageNum}/?orderby=popularity'
中的pageNum
參數(shù),獲取到不同的page- 獲取當前page下所有圖片的鏈接
- 利用requests去請求相應的鏈接并保存至本地文件夾中
通過上面的偽代碼,我們便可以寫出相應的爬蟲程序了:
import requests
from bs4 import BeautifulSoupdef download_from_url(url:str):'''利用requests庫,從相應的圖片鏈接中下載對應的圖片結果會保存到results文件夾中'''filename = url.split('/')[-1]with open(f'./results/{filename}','wb') as fp:fig_response = requests.get(url)fp.write(fig_response.content)if __name__=='__main__':for pageNum in range(1,49):url=f'https://scrapeme.live/shop/page/{pageNum}/?orderby=popularity'response = requests.get(url)soup = BeautifulSoup(response.text, 'html.parser')# 找到所有的圖片元素links = soup.find_all('img')for link in links:# 找到圖片對應的鏈接fig_link = link.get('src')# 根據(jù)鏈接下載相應的圖片download_from_url(fig_link)
然后我們可以看看我們爬取下來的寶可夢圖片:
怎么樣,是不是又優(yōu)雅又簡單hhh,輕輕松松拿捏住了🤏
第二課總結
通過本節(jié)課程,你應該已經對如何使用requests庫和Beautiful Soup庫編寫爬蟲程序有了更加深入的認識。恭喜你,你已經能夠應付大多數(shù)的爬蟲場景了,已經基本入門了python 網絡爬蟲的世界φ(゜▽゜*)?
接下來,本系列課程的第三課,將講述本系列課程的提高內容:利用scrapy庫以應對更多更復雜的爬蟲場景。