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

《python爬蟲練習(xí)2》爬取網(wǎng)站表情包

這篇具有很好參考價(jià)值的文章主要介紹了《python爬蟲練習(xí)2》爬取網(wǎng)站表情包。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

獲取網(wǎng)站表情包

運(yùn)行環(huán)境:

#環(huán)境:win10
import requests  #發(fā)送請(qǐng)求
from lxml import etree  #獲取html主頁樹狀代碼
import os #創(chuàng)建本地文件夾用來存儲(chǔ)圖片

1.分析:

目標(biāo)網(wǎng)址:https://www.runoob.com/
首先想要獲取什么就從哪里入手,打開圖所在的網(wǎng)頁,F(xiàn)12查看代碼的內(nèi)容,此處抓取的是資源文件,爬取中發(fā)現(xiàn)ajax類型的文件加載出來的無法知道圖片的源地址所以暫時(shí)不能用這種方式獲取。因此可以生成第一步的代碼。

import request

url  = "https://www.runoob.com/w3cnote/programmer-joke-22.html"
headers = {
    "User-Agent" :'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
res = requests.get(url =url ,headers = headers) #獲取了該頁面的內(nèi)容

2.篩選:

獲取的內(nèi)容是整個(gè)網(wǎng)頁的內(nèi)容,我們需要篩選出我們需要的東西,這個(gè)地方使用到了知識(shí)點(diǎn)“xpath
,我們通過HTML的代碼已經(jīng)知道了動(dòng)態(tài)圖所放的位置,找到最外層的標(biāo)簽class=“article-intro”,然后獲取src對(duì)應(yīng)的地址就可以了

import request
from lxml import etree

url  = "https://www.runoob.com/w3cnote/programmer-joke-22.html"
headers = {
    "User-Agent" :'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
res = requests.get(url =url ,headers = headers) #獲取了該頁面的內(nèi)容
# print(res.text)
tree = etree.HTML(res.text)
# print(tree.xpath("http://*[@class='article-intro']/p/@src")) #之前經(jīng)常用這個(gè)方法,出來的往往是空
print(tree.xpath("http://div[@class='article-intro']/descendant::*/@src")) #descendant::*表示的是@class='article-intro'標(biāo)簽下面所有

3.范圍擴(kuò)大:

通過上面的設(shè)計(jì),我們已經(jīng)可以獲取當(dāng)前頁面的圖片的地址了,但是我們應(yīng)該可以從下面知道這里是有很多頁的,這個(gè)地方我知道兩種方法,一種就是讀取下一頁標(biāo)簽,結(jié)束的時(shí)候標(biāo)簽已經(jīng)是消失的狀態(tài),以此來獲取下一頁的跳轉(zhuǎn)地址。另外一種就是我這次用的目測法,我直接是對(duì)比了幾個(gè)頁面的區(qū)別,就發(fā)現(xiàn)了頁面中數(shù)字參數(shù)就是控制不同頁面的。

import request
from lxml import etree

url  = "https://www.runoob.com/w3cnote/programmer-joke-22.html"
headers = {
    "User-Agent" :'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}

for j in range(22,28):
    url = f"https://www.runoob.com/w3cnote/programmer-joke-{j}.html"
    res = requests.get(url =url ,headers = headers) #獲取了該頁面的內(nèi)容
    # print(res.text)
    tree = etree.HTML(res.text)
    # print(tree.xpath("http://*[@class='article-intro']/p/@src")) #之前經(jīng)常用這個(gè)方法,出來的往往是空
    print(tree.xpath("http://div[@class='article-intro']/descendant::*/@src"))

4.存儲(chǔ):

我們已經(jīng)獲取了每個(gè)頁面的每一條圖片的鏈接,這個(gè)時(shí)候我們就可以進(jìn)行圖片的存儲(chǔ),無論是圖片還是視頻這一類的數(shù)據(jù)都需要通過二進(jìn)制的形式進(jìn)行存儲(chǔ),所以寫入的時(shí)候通常是response.content,這個(gè)地方我是首先創(chuàng)建了一個(gè)文件夾,然后在此路徑下寫入圖片的數(shù)據(jù),因?yàn)榫W(wǎng)站中獲取src相關(guān)的鏈接有些許不同,所以我在設(shè)計(jì)的時(shí)候也調(diào)整了一下我的代碼設(shè)計(jì)。

import requests
from lxml import etree
import os
url  = "https://www.runoob.com/w3cnote/programmer-joke-22.html"
headers = {
    "User-Agent" :'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
if not os.path.exists('images'):
    os.makedirs('images')
http = "https:"
for j in range(22,28):
    url = f"https://www.runoob.com/w3cnote/programmer-joke-{j}.html"
    res = requests.get(url =url ,headers = headers)
    # print(res.text)
    tree = etree.HTML(res.text)
    # print(tree.xpath("http://*[@class='article-intro']/p/@src")) #之前經(jīng)常用這個(gè)方法,出來的往往是空
    print(tree.xpath("http://div[@class='article-intro']/descendant::*/@src"))
    for i in tree.xpath("http://div[@class='article-intro']/descendant::*/@src"):
        try:
            if "https"  in i:
                x = i.split("/")
                print(x[-1])
                res = requests.get(url=i, headers=headers)
                with open(f"images/{x[-1]}","wb") as f:
                    f.write(res.content)
            elif "http://" in i :
                x = i.split("/")
                y = x[-1]
                y = y.replace('"',"")
                print(x[-1])
                res = requests.get(url=(http + i), headers=headers)
                with open(f"images/{y}", "wb") as s:
                    s.write(res.content)
            else:
                continue
        except:
            print("跳過一個(gè)異常")

結(jié)語:

至此就實(shí)現(xiàn)了對(duì)于圖片的一個(gè)獲取,這種圖片或者文字都是比較好獲取的,通過這個(gè)方法也可以輕易的獲取某些網(wǎng)站的頭條熱點(diǎn)的文字和鏈接,也可以用scrapy框架來進(jìn)行爬取,一般情況下我是習(xí)慣先用基礎(chǔ)代碼捋清思路然后再用框架實(shí)現(xiàn)爬取的過程。學(xué)習(xí)過程中也是發(fā)現(xiàn),部分內(nèi)容無法通過request的返回值來爬取的,因?yàn)檫@些數(shù)據(jù)是動(dòng)態(tài)的,雖然可以在F12中看到他們的存在。這種通過ajax生成的內(nèi)容我們可能需要使用selenium來進(jìn)行爬取,當(dāng)然selenium的劣勢就是無法在服務(wù)器進(jìn)行部署,只能在有網(wǎng)頁實(shí)體中獲取對(duì)應(yīng)的內(nèi)容。文章來源地址http://www.zghlxwxcb.cn/news/detail-428296.html

到了這里,關(guān)于《python爬蟲練習(xí)2》爬取網(wǎng)站表情包的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【python爬蟲】中央氣象局預(yù)報(bào)—靜態(tài)網(wǎng)頁圖像爬取練習(xí)

    【python爬蟲】中央氣象局預(yù)報(bào)—靜態(tài)網(wǎng)頁圖像爬取練習(xí)

    中央氣象臺(tái) 是中國氣象局(中央氣象臺(tái))發(fā)布的七天降水預(yù)報(bào)頁面。這個(gè)頁面提供了未來一周內(nèi)各地區(qū)的降水預(yù)報(bào)情況,幫助人們了解即將到來的降水情況,以做出相應(yīng)的應(yīng)對(duì)措施。頁面中的預(yù)報(bào)內(nèi)容通常包括以下要點(diǎn): 地區(qū)分布 :頁面展示了中國各地區(qū)的降水預(yù)報(bào)情況。

    2024年02月10日
    瀏覽(20)
  • Python爬蟲入門:使用selenium庫,webdriver庫模擬瀏覽器爬蟲,模擬用戶爬蟲,爬取網(wǎng)站內(nèi)文章數(shù)據(jù),循環(huán)爬取網(wǎng)站全部數(shù)據(jù)。

    Python爬蟲入門:使用selenium庫,webdriver庫模擬瀏覽器爬蟲,模擬用戶爬蟲,爬取網(wǎng)站內(nèi)文章數(shù)據(jù),循環(huán)爬取網(wǎng)站全部數(shù)據(jù)。

    *嚴(yán)正聲明:本文僅限于技術(shù)討論與分享,嚴(yán)禁用于非法途徑。 目錄 準(zhǔn)備工具: 思路: 具體操作: 調(diào)用需要的庫: 啟動(dòng)瀏覽器驅(qū)動(dòng): 代碼主體: ?完整代碼(解析注釋): Python環(huán)境; 安裝selenium庫; Python編輯器; 待爬取的網(wǎng)站; 安裝好的瀏覽器; 與瀏覽器版本相對(duì)應(yīng)的

    2023年04月24日
    瀏覽(102)
  • 【Python】爬蟲練習(xí)-爬取豆瓣網(wǎng)電影評(píng)論用戶的觀影習(xí)慣數(shù)據(jù)

    【Python】爬蟲練習(xí)-爬取豆瓣網(wǎng)電影評(píng)論用戶的觀影習(xí)慣數(shù)據(jù)

    目錄 前言 一、配置環(huán)境 1.1、 安裝Python 1.2、?安裝Requests庫和BeautifulSoup庫 1.3.、安裝Matplotlib 二、登錄豆瓣網(wǎng)(重點(diǎn)) 2.1、獲取代理 2.2、測試代理ip是否可用 2.3、設(shè)置大量請(qǐng)求頭隨機(jī)使用 2.4、登錄豆瓣網(wǎng) 三、爬取某一部熱門電影數(shù)據(jù) 3.1、爬取全部長、短評(píng)論 3.2、獲取用戶

    2024年02月09日
    瀏覽(26)
  • [Python練習(xí)]使用Python爬蟲爬取豆瓣top250的電影的頁面源碼

    [Python練習(xí)]使用Python爬蟲爬取豆瓣top250的電影的頁面源碼

    在終端中輸入以下代碼(直接在cmd命令提示符中,不需要打開Python) 從豆瓣網(wǎng)提供的鏡像網(wǎng)站下載requests第三方庫 是從國外網(wǎng)站下載,速度慢甚至有時(shí)候無法下載 運(yùn)行代碼之后,沒反應(yīng),無輸出結(jié)果 可以看一下返回的頁面請(qǐng)求狀態(tài)碼是多少: 狀態(tài)碼是 418 ,所有4開頭的狀態(tài)

    2024年01月17日
    瀏覽(23)
  • Python爬蟲:實(shí)現(xiàn)爬取、下載網(wǎng)站數(shù)據(jù)的幾種方法

    使用腳本進(jìn)行下載的需求很常見,可以是常規(guī)文件、web頁面、Amazon S3和其他資源。Python 提供了很多模塊從 web 下載文件。下面介紹 requests 模塊是模仿網(wǎng)頁請(qǐng)求的形式從一個(gè)URL下載文件 示例代碼: 安裝 wget 庫 示例代碼 有些 URL 會(huì)被重定向到另一個(gè) URL,后者是真正的下載鏈接

    2024年02月05日
    瀏覽(96)
  • python爬蟲-獲取某某在線翻譯的查詢結(jié)果,爬取json文件并解析

    python爬蟲-獲取某某在線翻譯的查詢結(jié)果,爬取json文件并解析

    url,請(qǐng)求方式,請(qǐng)求格式,都在此請(qǐng)求的header中 (此內(nèi)容瀏覽器不同顯示內(nèi)容應(yīng)該也是一樣的,我用的edge瀏覽器,我也試過chrom瀏覽器,效果一樣) ctrl + b進(jìn)入方法體內(nèi)即可 解讀response.text,這是一個(gè)包含Unicode字符的JSON字符串編碼 也許我們需要翻譯一下 將API接口返回的JS

    2024年02月06日
    瀏覽(24)
  • python爬取豆瓣電影排行前250獲取電影名稱和網(wǎng)絡(luò)鏈接[靜態(tài)網(wǎng)頁]————爬蟲實(shí)例(1)

    python爬取豆瓣電影排行前250獲取電影名稱和網(wǎng)絡(luò)鏈接[靜態(tài)網(wǎng)頁]————爬蟲實(shí)例(1)

    目錄 1.算法原理: 2.程序流程: 3.程序代碼: 4.運(yùn)行結(jié)果(部分結(jié)果展示): 5.結(jié)果分析: (1)利用import命令導(dǎo)入模塊或者導(dǎo)入模塊中的對(duì)象; ①利用requests庫獲取數(shù)據(jù); ②用BeautifulSoup庫將網(wǎng)頁源代碼轉(zhuǎn)換成BeautifulSoup類型,以便于數(shù)據(jù)的解析和處理; ③用time庫進(jìn)行時(shí)間延時(shí)

    2023年04月16日
    瀏覽(96)
  • 爬蟲機(jī)試題-爬取新聞網(wǎng)站

    爬蟲機(jī)試題-爬取新聞網(wǎng)站

    之前投簡歷時(shí)遇到了這樣的一個(gè)筆試。本以為會(huì)是數(shù)據(jù)結(jié)構(gòu)算法之類的沒想到直接發(fā)了一個(gè)word直接提需求,感覺挺有意思就寫了這篇文章,感興趣的朋友可以看看。 通過分析頁面結(jié)構(gòu)我們得以知道,這個(gè)頁面本身沒有新聞信息,是由js代碼執(zhí)行后才將信息插入到html中的,因

    2024年04月25日
    瀏覽(21)
  • 【爬蟲】3.4 爬取網(wǎng)站復(fù)雜數(shù)據(jù)

    【爬蟲】3.4 爬取網(wǎng)站復(fù)雜數(shù)據(jù)

    進(jìn)一步把前面的Web網(wǎng)站的mysql.html, python.html, java.html豐富其中 的內(nèi)容,并加上圖形: mysql.html java.html python.html 服務(wù)器 server.py 程序還是前面3.2的,如下: ????????爬取網(wǎng)站中的mysql, python, java的簡介與圖像。我們看到簡介在網(wǎng)頁的第一個(gè)div中,圖像在img中,而且只有這3個(gè)網(wǎng)

    2024年02月08日
    瀏覽(19)
  • 爬蟲源碼---爬取小貓貓交易網(wǎng)站

    爬蟲源碼---爬取小貓貓交易網(wǎng)站

    前言: 本片文章主要對(duì)爬蟲爬取網(wǎng)頁數(shù)據(jù)來進(jìn)行一個(gè)簡單的解答,對(duì)與其中的數(shù)據(jù)來進(jìn)行一個(gè)爬取。 Python版本:3.7.3 IDE:PyCharm 所需庫:requests ,parsel? 我們需要獲取以下數(shù)據(jù): \\\'地區(qū)\\\',?\\\'店名\\\',?\\\'標(biāo)題\\\',?\\\'價(jià)格\\\',?\\\'瀏覽次數(shù)\\\',?\\\'賣家承諾\\\',?\\\'在售只數(shù)\\\', \\\'年齡\\\',?\\\'品種\\\',?\\\'預(yù)防\\\',?

    2024年02月10日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包