国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

用Python編寫(xiě)一個(gè)簡(jiǎn)單的爬蟲(chóng)

趙春朋 / 1031人閱讀

摘要:進(jìn)入這篇圖集在中并沒(méi)有發(fā)現(xiàn)圖集有關(guān)的請(qǐng)求接口可能也是混排的我們可以查看頁(yè)面的源碼原來(lái)真的是混排的寫(xiě)法看了一下這里用到具體怎么實(shí)現(xiàn)的我們不去探討了我們只需要取出數(shù)據(jù)即可。嘿嘿看我的美圖去了。

作者信息:

Author : 黃志成(小黃)

博客地址: 博客

吶,這是一篇福利教程.為什么這么說(shuō)呢.我們要爬取的內(nèi)容是美圖網(wǎng)站(嘿嘿,老司機(jī)都懂的)

廢話(huà)不多說(shuō).開(kāi)始今天的表演.

這個(gè)圖集網(wǎng)站不要問(wèn)我怎么來(lái)的.絕對(duì)不是我刻意找的.(其實(shí)是看了別的發(fā)的一篇文章,就想自己動(dòng)手實(shí)現(xiàn)一下)

我們今天的任務(wù)就是 將這些圖集保存下來(lái)。

首先我們需要獲取到所有的列表,我們往下拉動(dòng)滾動(dòng)條,拉到底,會(huì)繼續(xù)自動(dòng)加載內(nèi)容,我們通過(guò)瀏覽器的NetWork可以發(fā)現(xiàn)請(qǐng)求的數(shù)據(jù)包

我們來(lái)分析一下這個(gè)數(shù)據(jù)包

URL:https://www.toutiao.com/search_content/?offset=0&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=20&cur_tab=3&from=gallery

通過(guò)url我們可以知道幾個(gè)重要的參數(shù)

offset 偏移量
count 數(shù)量
cur_tab 當(dāng)前分類(lèi)

這里很多朋友可能對(duì)偏移量不太了解,這里我用sql語(yǔ)句表示一下,如果了解sql的朋友 肯定就知道了

mysql> SELECT * FROM art LIMIT offset , count

mysql> SELECT * FROM table LIMIT 5,10;  // 檢索記錄行 6-15

mysql> SELECT * FROM table LIMIT 95,1; // 檢索記錄行 96

這里我每次讀取一條,對(duì)一條進(jìn)行操作.

URL:https://www.toutiao.com/search_content/?offset=1&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery

每次對(duì)offset 進(jìn)行自增即可了

我們點(diǎn)擊進(jìn)去 看看數(shù)據(jù)的結(jié)構(gòu).

我們需要獲取到該圖集的鏈接。

進(jìn)入這篇圖集,在NetWork中并沒(méi)有發(fā)現(xiàn)圖集有關(guān)的請(qǐng)求接口,可能也是混排的.

我們可以查看頁(yè)面的源碼

原來(lái)真的是混排的寫(xiě)法.看了一下這里用到vue.具體怎么實(shí)現(xiàn)的我們不去探討了,我們只需要取出數(shù)據(jù)即可。

那如何取出呢? 提供兩種方法,一種就是正則,一種就是自己寫(xiě)一個(gè)取文本的函數(shù).這里我用第二種作為演示,下面是取文本的函數(shù).

def txt_wrap_by(start_str, end, html):
    start = html.find(start_str)
    if start >= 0:
        start += len(start_str)
        end = html.find(end, start)
        if end >= 0:
            return html[start:end].strip()

我們?nèi)〕?JSON.parse("") 中的數(shù)據(jù)

觀(guān)察數(shù)據(jù),可以發(fā)現(xiàn) 我們?nèi)〕?url 就可以了,這里的數(shù)據(jù)是json但是被轉(zhuǎn)義了,我們就通過(guò)正則取出吧

正則的語(yǔ)法如圖上,最后我也會(huì)放出所有代碼滴,大家放心.

取到了uri 我們只要在前面拼上 http://p3.pstatp.com/ 即可.

然后保存為圖片即可~

上面說(shuō)的都是思路,最后放出代碼~

import requests,os,json,re,datetime

# 主函數(shù)
def main():
    foreach_art_list()

def foreach_art_list():
    # 判斷目錄下是否存在jilv.txt文件 如果存在則讀取里面的數(shù)值
    if os.path.exists("./jilv.txt"):
        f = open("./jilv.txt")
        n = f.read()
        n = int(n)
        f.close()
    else:
        n = 1    
    while True:
        url = "http://www.toutiao.com/search_content/?offset=" + str(n) + "&format=json&keyword=%E6%B8%85%E7%BA%AF%E7%BE%8E%E5%A5%B3&autoload=true&count=1&cur_tab=3&from=gallery"
        re = requests.get(url)
        data = re.json()["data"]
        if not data:
            break
        # 運(yùn)行圖片下載函數(shù)
        download_pic(data[0]["article_url"],n)
        n = n+1
        # 將n寫(xiě)入文件 防止程序運(yùn)行出錯(cuò) 可以繼續(xù)運(yùn)行
        with open("./jilv.txt", "w") as f:
            f.write(str(n))

def download_pic(url,n):
    download_pic_url = "http://p3.pstatp.com/"
    # 這里必須帶上協(xié)議頭,否則會(huì)請(qǐng)求失敗
    header = {
        "user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36"
    }
    res = requests.get(url,headers = header)
    content = res.text
    img_list_json = txt_wrap_by("gallery: JSON.parse("",""),",content)
    # 正則獲取所有的uri
    img_list = re.findall(r"uri":"(.*?)"",img_list_json)
    #判斷是否有此目錄
    if "img" not in os.listdir("."):
        os.mkdir("./img")
    if str(n) not in os.listdir("./img"):
        os.mkdir("./img/"+str(n))
    for v in img_list:
        img_path = download_pic_url + v
        img_path = img_path.replace("", "")
        # 讀取圖片
        atlas = requests.get(img_path).content
        # 保存圖片
        with open( "./img/" + str(n) + "/" + str(datetime.datetime.now()) +".jpg", "wb") as f:  # 把圖片寫(xiě)入文件內(nèi)
            f.write(atlas)


# 取出兩個(gè)文本之間的內(nèi)容
def txt_wrap_by(start_str, end, html):
    start = html.find(start_str)
    if start >= 0:
        start += len(start_str)
        end = html.find(end, start)
        if end >= 0:
            return html[start:end].strip()

# 運(yùn)行程序
main()

最后 展示一下 運(yùn)行結(jié)果:

這個(gè)程序還有許多不完善的地方,我會(huì)在之后教程加入 redis 和 多線(xiàn)程 的寫(xiě)法,讓他成為最快的爬蟲(chóng)~

敬請(qǐng)期待~ 今天就到這里了. 又是周末!祝大家周末愉快。嘿嘿~ 看我的美圖去了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/44659.html

相關(guān)文章

  • Python爬蟲(chóng)建站入門(mén)手記——從零開(kāi)始建立采集站點(diǎn)(二:編寫(xiě)爬蟲(chóng)

    摘要:接上回第二部分,編寫(xiě)爬蟲(chóng)。進(jìn)入微信嵌套選擇圖片和上傳圖片接口,實(shí)現(xiàn)一鍵上傳圖片,遇到問(wèn)題看吧,我現(xiàn)在已經(jīng)可以通過(guò)爬蟲(chóng)獲取的提問(wèn)標(biāo)題了。微信故意省略想做小偷站的,看到這里基本上就能搞出來(lái)了。下一篇,采集入庫(kù) 上回,我裝了環(huán)境 也就是一對(duì)亂七八糟的東西 裝了pip,用pip裝了virtualenv,建立了一個(gè)virtualenv,在這個(gè)virtualenv里面,裝了Django,創(chuàng)建了一個(gè)...

    Codeing_ls 評(píng)論0 收藏0
  • 談?wù)剬?duì)Python爬蟲(chóng)理解

    摘要:爬蟲(chóng)也可以稱(chēng)為爬蟲(chóng)不知從何時(shí)起,這門(mén)語(yǔ)言和爬蟲(chóng)就像一對(duì)戀人,二者如膠似漆,形影不離,你中有我我中有你,一提起爬蟲(chóng),就會(huì)想到,一說(shuō)起,就會(huì)想到人工智能和爬蟲(chóng)所以,一般說(shuō)爬蟲(chóng)的時(shí)候,大部分程序員潛意識(shí)里都會(huì)聯(lián)想為爬蟲(chóng),為什么會(huì)這樣,我覺(jué)得有兩個(gè) 爬蟲(chóng)也可以稱(chēng)為Python爬蟲(chóng) 不知從何時(shí)起,Python這門(mén)語(yǔ)言和爬蟲(chóng)就像一對(duì)戀人,二者如膠似漆 ,形影不離,你中有我、我中有你,一提起爬蟲(chóng),就...

    Yang_River 評(píng)論0 收藏0
  • 如何實(shí)現(xiàn)一個(gè)Python爬蟲(chóng)框架

    摘要:這篇文章的題目有點(diǎn)大,但這并不是說(shuō)我自覺(jué)對(duì)爬蟲(chóng)這塊有多大見(jiàn)解,我只不過(guò)是想將自己的一些經(jīng)驗(yàn)付諸于筆,對(duì)于如何寫(xiě)一個(gè)爬蟲(chóng)框架,我想一步一步地結(jié)合具體代碼來(lái)講述如何從零開(kāi)始編寫(xiě)一個(gè)自己的爬蟲(chóng)框架年到如今,我花精力比較多的一個(gè)開(kāi)源項(xiàng)目算是了,這是 showImg(https://segmentfault.com/img/remote/1460000018513379); 這篇文章的題目有點(diǎn)大...

    feng409 評(píng)論0 收藏0
  • 爬蟲(chóng) - 收藏集 - 掘金

    摘要:在這之前,還是有必要對(duì)一些概念超輕量級(jí)反爬蟲(chóng)方案后端掘金前言爬蟲(chóng)和反爬蟲(chóng)日益成為每家公司的標(biāo)配系統(tǒng)。 爬蟲(chóng)修煉之道——從網(wǎng)頁(yè)中提取結(jié)構(gòu)化數(shù)據(jù)并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關(guān)注我的專(zhuān)題:爬蟲(chóng)修煉之道 上篇 爬蟲(chóng)修煉之道——編寫(xiě)一個(gè)爬取多頁(yè)面的網(wǎng)絡(luò)爬蟲(chóng)主要講解了如何使用python編寫(xiě)一個(gè)可以下載多頁(yè)面的爬蟲(chóng),如何將相對(duì)URL轉(zhuǎn)為絕對(duì)URL,如何限速,...

    1fe1se 評(píng)論0 收藏0
  • Python

    摘要:最近看前端都展開(kāi)了幾場(chǎng)而我大知乎最熱語(yǔ)言還沒(méi)有相關(guān)。有關(guān)書(shū)籍的介紹,大部分截取自是官方介紹。但從開(kāi)始,標(biāo)準(zhǔn)庫(kù)為我們提供了模塊,它提供了和兩個(gè)類(lèi),實(shí)現(xiàn)了對(duì)和的進(jìn)一步抽象,對(duì)編寫(xiě)線(xiàn)程池進(jìn)程池提供了直接的支持。 《流暢的python》閱讀筆記 《流暢的python》是一本適合python進(jìn)階的書(shū), 里面介紹的基本都是高級(jí)的python用法. 對(duì)于初學(xué)python的人來(lái)說(shuō), 基礎(chǔ)大概也就夠用了...

    dailybird 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<