真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng)Top500本五星好評(píng)書籍

來啦,老弟

創(chuàng)新互聯(lián)主營(yíng)甘州網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),甘州h5小程序開發(fā)搭建,甘州網(wǎng)站營(yíng)銷推廣歡迎甘州等地區(qū)企業(yè)咨詢

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

我們已經(jīng)知道怎么使用

Requests]

進(jìn)行各種請(qǐng)求騷操作

也知道了對(duì)服務(wù)器返回的數(shù)據(jù)如何使用

正則表達(dá)式

來過濾我們想要的內(nèi)容

...

那么接下來

我們就使用 requests 和 re 來寫一個(gè)爬蟲

作為一個(gè)愛看書的你(說的跟真的似的)

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

怎么能發(fā)現(xiàn)好書呢?

所以我們

爬取當(dāng)當(dāng)網(wǎng)的前 500本好五星評(píng)書籍

怎么樣?

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

ok

接下來就是

學(xué)習(xí) python 的正確姿勢(shì)

請(qǐng)?jiān)陔娔X的陪同下

邊看本文邊練習(xí)

首先我們要對(duì)我們的目標(biāo)網(wǎng)站進(jìn)行分析

先摸清對(duì)方的底

我們才能戰(zhàn)無不勝

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

打開這個(gè)書籍排行榜的地址

http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-recent30-0-0-1-1

我們可以看到是這樣的一個(gè)網(wǎng)頁(yè)

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

每一頁(yè)顯示 20 本書

當(dāng)我們點(diǎn)擊下一頁(yè)的時(shí)候

你可以發(fā)現(xiàn)地址變了

http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-recent30-0-0-1-2

也就是我們翻到第幾頁(yè)的時(shí)候

鏈接地址的最后一個(gè)參數(shù)會(huì)跟著變

那么我們等會(huì)在 python 中可以用一個(gè)變量

來實(shí)現(xiàn)獲取不同頁(yè)數(shù)的內(nèi)容

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

接著

用我們之前說的 Chrome 騷操作

來分析一下

我們要的內(nèi)容是怎么請(qǐng)求的

以及

返回給我們的源代碼是什么樣的

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

可以看到

我們通過 GET 請(qǐng)求

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

我們的請(qǐng)求頭

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

這是服務(wù)器返回來的數(shù)據(jù)

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

接著我們?cè)賮矸治鲆幌挛覀円ト〉年P(guān)鍵信息

Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

我們要的就是前 500 本書的

排名

書名

圖片地址

作者

推薦指數(shù)

五星評(píng)分次數(shù)

價(jià)格

通過源碼我們可以看到

這些信息被放在了

  • 標(biāo)簽中

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    那么我們等會(huì)就可以使用

    來進(jìn)行過濾我們要的信息

    一頓分析完了之后

    接下來擼代碼了

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    主要思路

    使用 page 變量來實(shí)現(xiàn)翻頁(yè)

    我們使用 requests 請(qǐng)求當(dāng)當(dāng)網(wǎng)

    然后將返回的 HTML 進(jìn)行正則解析

    由于我們暫時(shí)還沒學(xué)到數(shù)據(jù)庫(kù)

    所以解析完之后就把內(nèi)容存到文件中。學(xué)習(xí)過程中有不懂的可以加入我們的學(xué)習(xí)交流秋秋圈784中間758后面214,與你分享Python企業(yè)當(dāng)下人才需求及怎么從零基礎(chǔ)學(xué)習(xí)Python,和學(xué)習(xí)什么內(nèi)容。相關(guān)學(xué)習(xí)視頻資料、開發(fā)工具都有分享

    ?

    def main(page):
       url = 'http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-recent30-0-0-1-' + str(page)
        html = request_dandan(url)
       items = parse_result(html) # 解析過濾我們想要的信息
    
       for item in items:
           write_item_to_file(item)
    

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    ?

    請(qǐng)求當(dāng)當(dāng)網(wǎng)

    當(dāng)我們請(qǐng)求成功之后

    拿到源代碼

    ?

    def request_dandan(url):
       try:
           response = requests.get(url)
           if response.status_code == 200:
               return response.text
       except requests.RequestException:
           return None
    

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    ?

    拿到源代碼了

    就要對(duì)其解析

    使用正則表達(dá)式獲取我們想要的關(guān)鍵信息

    獲取到了之后我們封裝一下數(shù)據(jù)

    ?

    def parse_result(html):
       pattern = re.compile('
  • .*?list_num.*?(\d+).
  • .*?.*?class="star">.*?class="tuijian">(.*?).*?class="publisher_info">.*?target="_blank">(.*?).*?class="biaosheng">.*?(.*?)
    .*?

    ¥(.*?).*?',re.S) items = re.findall(pattern,html) for item in items: yield { 'range': item[0], 'iamge': item[1], 'title': item[2], 'recommend': item[3], 'author': item[4], 'times': item[5], 'price': item[6] }

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    ?

    打印一下看看結(jié)果

    ?

    for item in items:
           print(item)
    

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    ?

    可以看到這樣的數(shù)據(jù)

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    沒毛病

    現(xiàn)在我們獲取的是第 1 頁(yè)的數(shù)據(jù)

    如何自動(dòng)獲取 25 頁(yè) 500 條數(shù)據(jù)呢

    來個(gè) for 循環(huán)唄

    ?

    if __name__ == "__main__":
       for i in range(1,26):
           main(i)
    

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    ?

    獲取完 500 本書的數(shù)據(jù)之后

    存到 book.txt 文件

    ?

    def write_item_to_file(item):
       print('開始寫入數(shù)據(jù) ====> ' + str(item))
       with open('book.txt', 'a', encoding='UTF-8') as f:
           f.write(json.dumps(item, ensure_ascii=False) + '\n')
           f.close()
    

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    ?

    完成

    項(xiàng)目跑起來,學(xué)習(xí)過程中有不懂的可以加入我們的學(xué)習(xí)交流秋秋圈784中間758后面214,與你分享Python企業(yè)當(dāng)下人才需求及怎么從零基礎(chǔ)學(xué)習(xí)Python,和學(xué)習(xí)什么內(nèi)容。相關(guān)學(xué)習(xí)視頻資料、開發(fā)工具都有分享

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    打開我們存儲(chǔ)的 book.txt 看看

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍

    前 500 本書的數(shù)據(jù)就被我們拿到啦

    Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng) Top 500 本五星好評(píng)書籍


    分享題目:Python第一個(gè)爬蟲,爬取當(dāng)當(dāng)網(wǎng)Top500本五星好評(píng)書籍
    網(wǎng)頁(yè)地址:http://weahome.cn/article/goigsg.html

    其他資訊

    在線咨詢

    微信咨詢

    電話咨詢

    028-86922220(工作日)

    18980820575(7×24)

    提交需求

    返回頂部