[toc] # 一、爬蟲對象-豆瓣讀書TOP250 今天我們分享一期python爬蟲案例講解。爬取對象是,豆瓣讀書TOP250排行榜數據: https://book.douban.com/top250 ![豆瓣網頁](https://img2023.cnblogs.com/blog/2864563 ...
目錄
一、爬蟲對象-豆瓣讀書TOP250
今天我們分享一期python爬蟲案例講解。爬取對象是,豆瓣讀書TOP250排行榜數據:
https://book.douban.com/top250
開發好python爬蟲代碼後,爬取成功後的csv數據,如下:
代碼是怎樣實現的爬取呢?下麵逐一講解python實現。
二、python爬蟲代碼講解
首先,導入需要用到的庫:
import requests # 發送請求
from bs4 import BeautifulSoup # 解析網頁
import pandas as pd # 存取csv
from time import sleep # 等待時間
然後,向豆瓣讀書網頁發送請求:
res = requests.get(url, headers=headers)
利用BeautifulSoup庫解析響應頁面:
soup = BeautifulSoup(res.text, 'html.parser')
用BeautifulSoup的select函數,(css解析的方法)編寫代碼邏輯,部分核心代碼:
name = book.select('.pl2 a')[0]['title'] # 書名
book_name.append(name)
bkurl = book.select('.pl2 a')[0]['href'] # 書籍鏈接
book_url.append(bkurl)
star = book.select('.rating_nums')[0].text # 書籍評分
book_star.append(star)
star_people = book.select('.pl')[1].text # 評分人數
star_people = star_people.strip().replace(' ', '').replace('人評價', '').replace('(\n', '').replace('\n)',
'') # 數據清洗
book_star_people.append(star_people)
最後,將爬取到的數據保存到csv文件中:
def save_to_csv(csv_name):
"""
數據保存到csv
:return: None
"""
df = pd.DataFrame() # 初始化一個DataFrame對象
df['書名'] = book_name
df['豆瓣鏈接'] = book_url
df['作者'] = book_author
df['譯者'] = book_translater
df['出版社'] = book_publisher
df['出版日期'] = book_pub_year
df['價格'] = book_price
df['評分'] = book_star
df['評分人數'] = book_star_people
df['一句話評價'] = book_comment
df.to_csv(csv_name, encoding='utf8') # 將數據保存到csv文件
其中,把各個list賦值為DataFrame的各個列,就把list數據轉換為了DataFrame數據,然後直接to_csv保存。
這樣,爬取的數據就持久化保存下來了。
三、講解視頻
同步講解視頻:https://www.zhihu.com/zvideo/1464515550177546240
四、完整源碼
附完整源代碼:【python爬蟲案例】利用python爬蟲爬取豆瓣讀書TOP250的數據!
我是 @馬哥python說 ,持續分享python源碼乾貨中!