前言
今天爲大家帶來利用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無異常