狠狠色丁香婷婷久久综合麻豆,国产99久久久久久免费看,与亲女洗澡时伦了视频,一面膜胸口一面膜下免费

Python第一個爬蟲,爬取當當網Top500本五星好評書籍

來啦,老弟

創新互聯主營甘州網站建設的網絡公司,主營網站建設方案,APP應用開發,甘州h5小程序開發搭建,甘州網站營銷推廣歡迎甘州等地區企業咨詢

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

我們已經知道怎么使用

Requests]

進行各種請求騷操作

也知道了對服務器返回的數據如何使用

正則表達式

來過濾我們想要的內容

...

那么接下來

我們就使用 requests 和 re 來寫一個爬蟲

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

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

怎么能發現好書呢?

所以我們

爬取當當網的前 500本好五星評書籍

怎么樣?

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

ok

接下來就是

學習 python 的正確姿勢

請在電腦的陪同下

邊看本文邊練習

首先我們要對我們的目標網站進行分析

先摸清對方的底

我們才能戰無不勝

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

打開這個書籍排行榜的地址

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

我們可以看到是這樣的一個網頁

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

每一頁顯示 20 本書

當我們點擊下一頁的時候

你可以發現地址變了

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

也就是我們翻到第幾頁的時候

鏈接地址的最后一個參數會跟著變

那么我們等會在 python 中可以用一個變量

來實現獲取不同頁數的內容

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

接著

用我們之前說的 Chrome 騷操作

來分析一下

我們要的內容是怎么請求的

以及

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

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

可以看到

我們通過 GET 請求

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

我們的請求頭

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

這是服務器返回來的數據

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

接著我們再來分析一下我們要抓取的關鍵信息

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

我們要的就是前 500 本書的

排名

書名

圖片地址

作者

推薦指數

五星評分次數

價格

通過源碼我們可以看到

這些信息被放在了 <li> 標簽中

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

那么我們等會就可以使用

來進行過濾我們要的信息

一頓分析完了之后

接下來擼代碼了

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

主要思路

使用 page 變量來實現翻頁

我們使用 requests 請求當當網

然后將返回的 HTML 進行正則解析

由于我們暫時還沒學到數據庫

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

?

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第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

?

請求當當網

當我們請求成功之后

拿到源代碼

?

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

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

?

拿到源代碼了

就要對其解析

使用正則表達式獲取我們想要的關鍵信息

獲取到了之后我們封裝一下數據

?

def parse_result(html):
   pattern = re.compile('<li>.*?list_num.*?(\d+).</div>.*?<img src="(.*?)".*?class="name".*?title="(.*?)">.*?class="star">.*?class="tuijian">(.*?)</span>.*?class="publisher_info">.*?target="_blank">(.*?)</a>.*?class="biaosheng">.*?<span>(.*?)</span></div>.*?<p><span\sclass="price_n">&yen;(.*?)</span>.*?</li>',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第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

?

打印一下看看結果

?

for item in items:
       print(item)

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

?

可以看到這樣的數據

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

沒毛病

現在我們獲取的是第 1 頁的數據

如何自動獲取 25 頁 500 條數據呢

來個 for 循環唄

?

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

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

?

獲取完 500 本書的數據之后

存到 book.txt 文件

?

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

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

?

完成

項目跑起來,學習過程中有不懂的可以加入我們的學習交流秋秋圈784中間758后面214,與你分享Python企業當下人才需求及怎么從零基礎學習Python,和學習什么內容。相關學習視頻資料、開發工具都有分享

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

打開我們存儲的 book.txt 看看

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

前 500 本書的數據就被我們拿到啦

Python第一個爬蟲,爬取當當網 Top 500 本五星好評書籍

標題名稱:Python第一個爬蟲,爬取當當網Top500本五星好評書籍
網站路徑:http://www.hntjjpw.com/article36/goigsg.html

成都網站建設公司_創新互聯,為您提供App設計、建站公司、網站營銷響應式網站、網站導航、服務器托管

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營
主站蜘蛛池模板: 屏东县| 民乐县| 石首市| 大连市| 伊通| 镇原县| 昌图县| 溧水县| 永年县| 巩义市| 大冶市| 云南省| 巴楚县| 盘山县| 呼伦贝尔市| 莲花县| 东乡县| 司法| 扬州市| 武平县| 常山县| 云和县| 伊金霍洛旗| 安西县| 屏南县| 常山县| 富平县| 双桥区| 郎溪县| 枣强县| 芒康县| 徐州市| 册亨县| 南丰县| 华宁县| 固始县| 平邑县| 本溪| 冕宁县| 赣州市| 阳山县|