Python爬蟲實戰,requests模塊,抓取豆瓣讀書Top250 前言 開發工具 環境搭建 思路分析 前期準備 效果展示

前言

今天爲大家帶來利用Python爬蟲抓取豆瓣讀書Top250,廢話不多說。

Let's start happily

開發工具

Python版本: 3.6.4

相關模塊:

requests模塊

lxml模塊

csv模塊

環境搭建

安裝Python並添加到環境變量,pip安裝需要的相關模塊即可。

思路分析

本文以爬蟲抓取豆瓣讀書,講解如何爬取豆瓣讀書Top250!

前期準備

1.獲取頁面內容

for url in urls:
    html = requests.get(url, headers=headers)
    selector = etree.HTML(html.text)

2.提取整個豆瓣書籍頁面數據

  • 瀏覽器中打開我們要爬取的頁面
  • 按F12進入開發者工具,查看我們想要的數據在哪裏
  • 這裏我們需要書籍書名,作者/譯者, 星級, 評分, 評語,出版社or時間信息等
 infos = selector.xpath('//tr[@class="item"]')

3.獲取豆瓣書籍書名', '作者/譯者', '出版社or時間信息', '價格', '評分', '評價人數', '評語', '相應的豆瓣鏈接'。

for info in infos:
        name = info.xpath('td/div/a/@title')[0]  # 書名.
        url = info.xpath('td/div/a/@href')[0]  # 鏈接.
        book_infos = info.xpath('td/p/text()')[0]
        author = book_infos.split('/')[0]  # 作者.
        publisher = book_infos.split('/')[-3]  # 出版社.
        date = book_infos.split('/')[-2]  # 出版時間.
        price = book_infos.split('/')[-1]  # 價格.
        rate = info.xpath('td/div/span[2]/text()')[0]  # 評分.
        number = info.xpath('normalize-space(td/div/span[3]/text())')  # 評價人數
        comments = info.xpath('td/p/span/text()')  # 評語.
        comment = comments[0] if len(comments) != 0 else "空"

運行結果

4.寫入數據

       writer.writerow(("《"+name+"》", url, author, publisher, date, price, rate + "分", number, comment))

#代碼測試2022.8.6無異常

效果展示

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章