【Python網絡爬蟲入門教程2】成為“Spider Man”的第二課:觀察目標網站、代碼編寫

Python 網絡爬蟲入門:Spider man的第二課

  • 寫在最前面
    • 觀察目標網站
    • 代碼編寫
  • 第二課總結

寫在最前面

有位粉絲希望學習網絡爬蟲的實戰技巧,想嘗試搭建自己的爬蟲環境,從網上抓取數據。

前面有寫一篇博客分享,但是內容感覺太淺顯了
【一個超簡單的爬蟲demo】探索新浪網:使用 Python 爬蟲獲取動態網頁數據

本期邀請了擅長爬蟲的朋友@PoloWitty,來撰寫這篇博客。通過他的專業視角和實戰經驗,一步步引導我們入門,成為一名數據探索的“Spider Man”。

【Python網絡爬蟲入門教程1】成為“Spider Man”的第一課:HTML、Request庫、Beautiful Soup庫
【Python網絡爬蟲入門教程2】成為“Spider Man”的第二課:觀察目標網站、代碼編寫
【Python網絡爬蟲入門教程3】成為“Spider Man”的第三課:從requests到scrapy、爬取目標網站


隨著互聯網數據的指數級增長,了解如何有效地提取這些信息變得越來越重要。無論是文本模型如ChatGPT,還是視覺模型如Stable Diffusion,它們的訓練數據大多來源于互聯網的海量數據。在這個日新月異的大數據時代,爬蟲也算是其中不得不點的一項基礎技能樹了。

本系列文章將深入淺出地介紹Python網絡爬蟲的基礎知識和技術,從 Requests 庫到 Scrapy 框架的 入門級 使用,為你開啟python網絡爬蟲的大門,成為spider man的一員,并最終以ScrapeMe網站作為目標示例,爬取下網站上的可愛又有趣的寶可夢照片。

在開始之前,還要啰嗦幾句疊個甲,網絡爬蟲雖然強大,但在使用時必須遵守法律法規和網站的爬蟲協議。不違法爬取數據,遵守相關法律法規哦~

請添加圖片描述

這是本系列的第二篇文章,將會以ScrapeMe網站作為示例,展示如何使用第一課中學到的基礎知識來對網站上的寶可夢圖片進行爬取。

觀察目標網站

首先,我們需要先對我們需要爬取的目標網站及目標內容進行一番觀察。

直接點進目標網站,我們可以看到如下內容:

在這里插入圖片描述

我們想要爬取的目標圖像就處于中間位置。

再觀察一下如何獲取到不同page上的所有圖片,點擊不同page并觀察對應的鏈接地址可以發現,通過在請求的地址鏈接中加入page參數,便可以訪問不同的鏈接了。比如https://scrapeme.live/shop/page/2/?orderby=popularity,就是第二個page對應的鏈接地址,通過不斷更換page后面的參數,便可以訪問到不同的page了。

代碼編寫

通過上面的觀察分析,我們的爬蟲代碼思路便很清晰了:

  1. 通過改變url=f'https://scrapeme.live/shop/page/{pageNum}/?orderby=popularity'中的pageNum參數,獲取到不同的page
    1. 獲取當前page下所有圖片的鏈接
    2. 利用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')# 根據鏈接下載相應的圖片download_from_url(fig_link)

然后我們可以看看我們爬取下來的寶可夢圖片:

在這里插入圖片描述

怎么樣,是不是又優雅又簡單hhh,輕輕松松拿捏住了🤏

第二課總結

通過本節課程,你應該已經對如何使用requests庫和Beautiful Soup庫編寫爬蟲程序有了更加深入的認識。恭喜你,你已經能夠應付大多數的爬蟲場景了,已經基本入門了python 網絡爬蟲的世界φ(゜▽゜*)?

接下來,本系列課程的第三課,將講述本系列課程的提高內容:利用scrapy庫以應對更多更復雜的爬蟲場景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213955.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213955.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213955.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vite腳手架,配置動態生成路由,添加不同的layout以及meta配置

實現效果,配置了layout和對應的路由的meta 我想每個模塊添加對應的layout,下邊演示一層layout及對應的路由 約束規則: 每個模塊下,添加對應的 layout.vue 文件 每個文件夾下的 index.vue 是要渲染的頁面路由 每個渲染的頁面路由對…

Appium python自動化測試系列之移動自動化測試!

1.1 移動自動化測試現狀 因為軟件行業越來越發達,用戶的接受度也在不斷提高,所以對軟件質量的要求也隨之提高,當然這個也要分行業,但這個還是包含了大部分。因為成本、質量的變化現在對自動化測試的重視度越來越高,在…

CTF-misc(1)圖片隱寫

筆記目錄 滲透測試工具(1)wireshark滲透測試工具(2)Nmap滲透測試工具(3)BurpsuiteAWD比賽(1)AWD入門攻略大綱CTF-Web(2)SQL注入CTF-Web(3)文件上傳漏洞 圖片隱寫目錄 (1)GIf和二維碼隱寫 二維碼補全 二維碼繪圖 Gif規律分析 (2)文本附加圖片隱寫 (3)IHDR文件頭修復圖片寬高 (…

linux端口轉發

使用iptables 例如要將本地的8080端口轉發到80端口,你可以使用以下命令: sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080這將把進入80端口的流量重定向到8080端口。 使用socat 另一種方法是使用socat工具。首先&am…

?Unity 搭建UDP服務端(02)接收客戶端消息

客戶端在上一篇 由于服務器邏輯寫的較為簡單 所以直接上代碼了~ using System; using System.Net; using System.Net.Sockets; using System.Text; using UnityEngine;public class UdpServer : MonoBehaviour {public static UdpServer instance;private void Awake(){if (…

Springboot管理系統數據權限過濾——ruoyi實現方案

本文主要簡述,Ruoyi框架使用的權限過濾實現方案,實現簡單易懂。主要知識點有: 注解定義;面向切面編程,在執行有數據權限注解的方法之前獲取用戶組織權限,拼接到domain對象的params參數中; 1. …

AI:100-基于卷積神經網絡的農作物生長狀態監測

?? 本文選自專欄:人工智能領域200例教程專欄 從基礎到實踐,深入學習。無論你是初學者還是經驗豐富的老手,對于本專欄案例和項目實踐都有參考學習意義。 ??? 每一個案例都附帶有在本地跑過的核心代碼,詳細講解供大家學習,希望可以幫到大家。歡迎訂閱支持,正在不斷更新…

基于CMT2300A定制的模組諧波測量及調試事例

1.1 芯片介紹 CMT2300A華普微推出的一款超低功耗 Sub-1GHz 射頻收發器,是一款SPI接口射頻前端芯片,調制方式支持OOK (G)FSK 、(G)MSK,速率最大可以做到300 kbps,休眠大概1uA,功率最大可以做到20dB,但各國的…

Android 刪除瀏覽器導航頁面修改默認主頁

Android 刪除瀏覽器導航頁面修改默認主頁 近來收到客戶需求反饋,需要刪除瀏覽器導航頁面并將百度設置為默認主頁,具體修改參照如下: 刪除瀏覽器導航頁面: /vendor/mediatek/proprietary/packages/apps/Browser/src/com/android…

軟文怎么寫才能讓消費者行動起來?媒介盒子分享

軟文的本質是營銷,做營銷文案不是玩文字藝術,它需要洞察用戶需求,懂產品,了解賣點,懂營銷,懂消費心理,最終讓消費者行動起來。有些文案可能在你看起來遣詞造句和配圖都很一般,但就是…

分布式uuid常用的算法

1、雪花算法介紹 面試官:集群高并發情況下如何實現分布式唯一全局id生成? - 墨天輪 2、百度的UidGenerator 介紹,適合容器化配置,同時兼容springboot,只需要mysql數據庫, https://github.com/baidu/uid-…

Python辦公之Excel篇

1.準備環境 Python版本:3.6.5 IDE集成開發環境:pycharm Python庫選擇:openpyxl openpyxl操作的excel文件以xlsx結尾。 基礎命令 查看 Python 版本 python --version查看 pip 版本 pip --version安裝openxlsx pip install openpyxl -i…

9.靜態路由

靜態路由 中小型網絡都會用到,防火墻核心交換機用的很多,一般是用在出口 路由表:路由器用來轉發數據包唯一的依據 NextHop下一跳 Static靜態路由需要手動設置 ip route-static 目標網段 掩碼 下一跳例如:ip route-static 192…

QT講程序打包成安裝包讓任何人可以使用

💂 個人主頁:pp不會算法v 🤟 版權: 本文由【pp不會算法v】原創、在CSDN首發、需要轉載請聯系博主 💬 如果文章對你有幫助、歡迎關注、點贊、收藏(一鍵三連)和訂閱專欄哦 文章目錄 1、release模式下編譯2、windeploy 打包發布3、使用inno setu…

node.js express cors解決跨域

目錄 什么是跨域 示例 postman請求 前端請求 cors中間件解決跨域 流程 配置cors參數 什么是跨域 跨域(Cross-Origin)是指在 Web 開發中,當一個網頁的源(Origin)與另一個網頁的源不同時,就發生了跨域…

day6 arm

main.c #include "uartt.h"//封裝延時函數void delay(int ms){int i,j;for(i0;i<ms;i){for(j0;j<2000;j);}}int main(){//串口初始化uart4_init();//燈初始化led_init();//char a;char *s;while(1){myputchar(\n);myputchar(\r);//從串口讀取一個字符// amyget…

手把手教你反編譯小程序

本次實驗環境 操作系統: win10 10.0.19042 node: v14.17.0 微信開發者工具: Stable 1.05.2110290 前期準備 在電腦端安裝模擬器工具&#xff0c;這里以夜神模擬器為例&#xff0c; 在模擬器中安裝微信&#xff1a;用于微信打開小程序時加載小程序包。在模擬器中文件管理器&…

論文筆記:A review on multi-label learning

一、介紹 傳統的監督學習是單標簽學習&#xff0c;但是現實中一個實例可能對應多個標簽。這篇文章介紹了多標簽分類的定義和評價指標、多標簽學習的算法還有其他相關的任務。 二、問題相關定義 2.1 多標簽學習任務 假設 X R d X R^d XRd&#xff0c;表示d維的輸入空間&am…

面試經典150題(10-13)

leetcode 150道題 計劃花兩個月時候刷完&#xff0c;今天&#xff08;第四天&#xff09;完成了4道(10-13)150&#xff1a; 10. &#xff08;45. 跳躍游戲 II&#xff09;題目描述&#xff1a; 給定一個長度為 n 的 0 索引整數數組 nums。初始位置為 nums[0]。 每個元素 nums[…

日本服務器:確保其穩定性的幾個要點

?  在租用日本服務器時&#xff0c;用戶們大多一定會關注它的穩定性&#xff0c;其實這些顧及都是正常的。畢竟&#xff0c;網站要想正常運行&#xff0c;保障服務器穩定是關鍵。本文將討論有關如何保障日本服務器穩定性的一些有用技巧&#xff0c;希望對您有所幫助。 1.注重…