国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python爬蟲開發(fā)實戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片

這篇具有很好參考價值的文章主要介紹了【Python爬蟲開發(fā)實戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

個人主頁:為夢而生~ 關(guān)注我一起學(xué)習(xí)吧!
專欄:python網(wǎng)絡(luò)爬蟲從基礎(chǔ)到實戰(zhàn) 歡迎訂閱!后面的內(nèi)容會越來越有意思~
往期推薦
【Python爬蟲開發(fā)基礎(chǔ)⑦】urllib庫的基本使用
【Python爬蟲開發(fā)基礎(chǔ)⑧】XPath庫及其基本用法
我們在之前已經(jīng)有8篇文章講述基礎(chǔ)知識了,下面我們利用已有的知識來進(jìn)行一個簡單的爬蟲實戰(zhàn),感受一下爬蟲的魅力,同時也可以增加學(xué)習(xí)的樂趣~
本文爬蟲程序用到了urllib庫和XPath庫,都是上兩次文章講過的,鏈接已經(jīng)放在上面了,沒有看過的先看一下前置知識哦~下面我們馬上開始!

首先來看一下效果:
【Python爬蟲開發(fā)實戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片



1 確定爬取目標(biāo)

我們第一步要做的,就是找到要爬取的目標(biāo)網(wǎng)站,同時利用開發(fā)者工具看清楚前端的代碼結(jié)構(gòu),方便我們寫合適的xpath代碼。

在這里,我們可以看到,class屬性為containerdiv標(biāo)簽有兩個,通過定位知道下面的標(biāo)簽包含著想要的圖片。
【Python爬蟲開發(fā)實戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片

在其中包含圖片的div標(biāo)簽里面,我們注意到,每一個class屬性為item masonry-brickdiv標(biāo)簽對應(yīng)著一個圖片。
【Python爬蟲開發(fā)實戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片
每一個圖片的地址和名字就藏在這里面,但是著并不代表可以直接用,具體原因我們后面再說。
【Python爬蟲開發(fā)實戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片


2 開始寫代碼

  • 首先,導(dǎo)入需要的庫
from lxml import etree
import urllib.request
  • 設(shè)置開始和結(jié)束頁
start_page = int(input('請輸入起始頁碼:'))
end_page = int(input('清輸入結(jié)束頁碼:'))
  • 然后,對每一頁的數(shù)據(jù),都按照這三步進(jìn)行:(1)請求對象的定制 (2)獲取網(wǎng)頁的源碼 (3)下載圖片
  • 可以用一個for循環(huán)來完成
for page in range(start_page, end_page+1):
    # (1) 請求對象的定制
    request = create_request(page)
    # (2) 獲取網(wǎng)頁的源碼
    content = get_content(request)
    # (3) 下載
    down_load(content)
  • 下面來定義里面的每一個函數(shù)(細(xì)節(jié)放在代碼的注釋中講解)
# 請求對象的定制
def create_request(page):
	# 由于不同的頁碼會導(dǎo)致網(wǎng)址的改變,所以我們把不變的部分作為base_url
    base_url = 'https://sc.chinaz.com/tupian/xiaomaotupian.html'
    # 對于形參不同的page,我們通過簡單的字符串拼接得到響應(yīng)的網(wǎng)址
    if page == 1 :
        url = base_url
    else :
        url = 'https://sc.chinaz.com/tupian/xiaomaotupian_' + str(page) + '.html'
    print(url)
    # 設(shè)置請求頭,這里設(shè)置了UA,每一個瀏覽器的UA不一樣,可以到抓包后的報文中找
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'
    }
    # 生成請求對象,用于向服務(wù)器發(fā)送請求
    request = urllib.request.Request(url = url, headers = headers)
    # 返回請求對象
    return request
  • 根據(jù)請求對象,向服務(wù)器發(fā)送請求,獲取網(wǎng)頁源碼
# 獲取網(wǎng)頁的源碼
def get_content(request):
    # 發(fā)送請求獲取響應(yīng)
    response = urllib.request.urlopen(request)
    # 對響應(yīng)進(jìn)行解碼
    content = response.read().decode('utf-8')
    # 返回
    return content
  • 進(jìn)行最后一步:下載
# 下載
def down_load(content):
	# 創(chuàng)建ElementTree對象
    tree = etree.HTML(content)
    # 使用xpath表達(dá)式,獲取圖片的名字和對應(yīng)的地址
    name_list = tree.xpath('//div[@class="container"]//img/@alt') 
    # 由于頁面的預(yù)加載,獲取到的HTML代碼中,圖片的地址并不會直接存在src里面,而是后面的data-original
    src_list = tree.xpath('//div[@class="container"]//img/@data-original')
    
#     print(len(name_list), len(src_list))
	# 遍歷本頁面的所有圖片
    for i in range(len(name_list)):
        name = name_list[i]
        src = src_list[i]
        url = 'https:' + src
#         print(name, url)
		# 利用urlretrieve進(jìn)行圖片的下載
        urllib.request.urlretrieve(url = url, filename = './cat imgs/' + name + '.jpg')

注意:上面的圖片預(yù)加載是指:當(dāng)頁面還沒有滑倒最下面的時候,后面的img標(biāo)簽里面的src屬性并沒有存儲圖片的地址,而地址是存在后面的data-original里面,如下圖所示:
【Python爬蟲開發(fā)實戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片

最后,我們運行代碼,就可以得到一開始的圖片了!趕緊試一下吧!后面的文章會介紹更加豐富多彩的爬蟲基礎(chǔ)~敬請期待文章來源地址http://www.zghlxwxcb.cn/news/detail-505843.html

到了這里,關(guān)于【Python爬蟲開發(fā)實戰(zhàn)①】使用urllib以及XPath爬取可愛小貓圖片的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Python爬蟲——urllib_ajax的get請求爬取豆瓣電影前十頁

    Python爬蟲——urllib_ajax的get請求爬取豆瓣電影前十頁

    ajax: 就是一段js代碼,通過這段代碼,可以讓頁面發(fā)送異步的請求,或者向服務(wù)器發(fā)送一個東西,即和服務(wù)器進(jìn)行交互 對于ajax: 一定會有 url,請求方法(get, post),可能有數(shù)據(jù) 一般使用 json 格式 打開豆瓣電影,F(xiàn)12打開控制臺(我這里是科幻類排行榜) 這是第一頁 第二頁 第

    2024年02月16日
    瀏覽(24)
  • Python爬蟲|基礎(chǔ)知識點詳細(xì)匯總(requests、urllib、re、bs4、xpath、PyQuery、jsonpath、多線程、協(xié)程、數(shù)據(jù)保存、selenium)

    1. 請求數(shù)據(jù) ① requests (1) 基本使用 參數(shù) 對響應(yīng)內(nèi)容的操作 (2) Requests進(jìn)階:使用Session 為什么要用 Session? Session代表服務(wù)器與瀏覽器的一次會話過程,Session對象存儲了特定用戶會話所需的信息 例如:一定時間內(nèi)記錄賬號密碼 (自動登錄) 可以加快 requests請求速度 需要客戶端登錄的

    2023年04月08日
    瀏覽(31)
  • 六個步驟學(xué)會使用Python爬蟲爬取數(shù)據(jù)(爬蟲爬取微博實戰(zhàn))

    六個步驟學(xué)會使用Python爬蟲爬取數(shù)據(jù)(爬蟲爬取微博實戰(zhàn))

    用python的爬蟲爬取數(shù)據(jù)真的很簡單,只要掌握這六步就好,也不復(fù)雜。以前還以為爬蟲很難,結(jié)果一上手,從初學(xué)到把東西爬下來,一個小時都不到就解決了。 第一步:安裝requests庫和BeautifulSoup庫 在程序中兩個庫的書寫是這樣的: 由于我使用的是pycharm進(jìn)行的python編程。所以

    2024年02月08日
    瀏覽(88)
  • 〖Python網(wǎng)絡(luò)爬蟲實戰(zhàn)?〗- XPATH語法介紹

    訂閱:新手可以訂閱我的其他專欄。免費階段訂閱量1000+ ????????????????python項目實戰(zhàn) ???????????????? Python編程基礎(chǔ)教程系列(零基礎(chǔ)小白搬磚逆襲) 說明:本專欄持續(xù)更新中,目前專欄免費訂閱,在轉(zhuǎn)為付費專欄前訂閱本專欄的,可以免費訂閱付費專欄,

    2023年04月14日
    瀏覽(134)
  • Python爬蟲實戰(zhàn)——Lazada商品數(shù)據(jù)(selenium自動化爬蟲,xpath定位)

    Python爬蟲實戰(zhàn)——Lazada商品數(shù)據(jù)(selenium自動化爬蟲,xpath定位)

    ? ? ? ? 在此說明,這個項目是我第一次真正去爬的一個網(wǎng)站,里面寫的代碼我自己都看不下去,但是已經(jīng)不想花時間去重構(gòu)了,所以看個樂呵就好,要噴也可以(下手輕一點)。這篇文算是記錄我的學(xué)習(xí)中出現(xiàn)的一些問題,不建議拿來學(xué)習(xí)和真拿我的代碼去爬Lazada的數(shù)據(jù),

    2024年02月02日
    瀏覽(22)
  • Python爬蟲實戰(zhàn)之爬淘寶商品--selenium+Xpath

    Python爬蟲實戰(zhàn)之爬淘寶商品--selenium+Xpath

    代碼鏈接 利用selenium來自動翻頁爬取淘寶商品的標(biāo)題,價格,銷量,產(chǎn)地信息。 導(dǎo)入庫: 注意自己配置好python環(huán)境(谷歌驅(qū)動…) 利用selenium,手動登錄獲取cookie保存在本地用于登錄平臺(便于測試代碼),訪問商品頁url通過Xpath選中對象拿數(shù)據(jù),翻頁,通過Xpath選中對象拿數(shù)據(jù),翻頁

    2024年02月04日
    瀏覽(25)
  • python爬蟲實戰(zhàn)——小說爬取

    python爬蟲實戰(zhàn)——小說爬取

    基于 requests 庫和 lxml 庫編寫的爬蟲,目標(biāo)小說網(wǎng)站域名http://www.365kk.cc/,類似的小說網(wǎng)站殊途同歸,均可采用本文方法爬取。 目標(biāo)網(wǎng)站 :傳送門 本文的目標(biāo)書籍 :《我的師兄實在太穩(wěn)健了》 “渡劫只有九成八的把握,和送死有什么區(qū)別?” 網(wǎng)絡(luò)爬蟲的工作實際上主要分為

    2024年02月06日
    瀏覽(25)
  • Python爬蟲實戰(zhàn)——爬取新聞數(shù)據(jù)(簡單的深度爬蟲)

    Python爬蟲實戰(zhàn)——爬取新聞數(shù)據(jù)(簡單的深度爬蟲)

    ? ? ? ? 又到了爬新聞的環(huán)節(jié)(好像學(xué)爬蟲都要去爬爬新聞,沒辦法誰讓新聞一般都很好爬呢XD,拿來練練手),只作為技術(shù)分享,這一次要的數(shù)據(jù)是分在了兩個界面,所以試一下深度爬蟲,不過是很簡單的。 ?網(wǎng)頁url 1.先看看網(wǎng)站網(wǎng)址的規(guī)律 ?發(fā)現(xiàn)這部分就是每一天的新聞

    2024年02月11日
    瀏覽(20)
  • Python 爬蟲之 urllib 包基本使用

    urllib 是一個 python 內(nèi)置包,不需要額外安裝即可使用,包里面包含了以下幾個用來處理 url 的模塊: urllib.request,用來打開和讀取 url,意思就是可以用它來模擬發(fā)送請求,就像在瀏覽器里輸入網(wǎng)址然后敲擊回車一樣,獲取網(wǎng)頁響應(yīng)內(nèi)容。 urllib.error,用來處理 urllib.request 引起

    2024年02月09日
    瀏覽(21)
  • Python爬蟲庫之urllib使用詳解

    Python爬蟲庫之urllib使用詳解

    ? 一、Python urllib庫 Python urllib 庫用于操作網(wǎng)頁 URL,并對網(wǎng)頁的內(nèi)容進(jìn)行抓取處理。 Python3 的 urllib。 urllib 包 包含以下幾個模塊: urllib.request - 打開和讀取 URL。 urllib.error - 包含 urllib.request 拋出的異常。 urllib.parse - 解析 URL。 urllib.robotparser - 解析 robots.txt 文件。 二、urllib.r

    2024年02月11日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包