import csv
from bs4 import BeautifulSoup
# 設置列表,用以存儲每本書籍的信息
data_list = []
# 設置頁碼 page_number
page_number = 1
# while 循環的條件設置為 page_number 的值是否小於 4
while page_number < 4:
# 設置要請求的網頁鏈接
url = '/resources/page/' + str(page_number)
# 請求網頁
books_list_res = requests.get(url)
# 解析請求到的網頁內容
bs = BeautifulSoup(books_list_res.text, 'html.parser')
# 搜索網頁中所有包含書籍名和書籍鏈接的 Tag
href_list = bs.find_all('a', class_='post-title')
# 使用 for 循環遍歷搜索結果
for href in href_list:
# 創建字典,用以存儲書籍信息
info_dict = {}
# 提取書籍名
info_dict['書名'] = href.text
# 提取書籍鏈接
book_url = href['href']
# 通過書籍鏈接請求書籍詳情頁
book_list_res = requests.get(book_url)
# 解析書籍詳情頁的內容
new_bs = BeautifulSoup(book_list_res.text, 'html.parser')
# 搜索網頁中所有包含書籍各項信息的 Tag
info_list = new_bs.find('div', class_='res-attrs').find_all('dl')
# 使用 for 循環遍歷搜索結果
for info in info_list:
# 提取信息的提示項
key = info.find('dt').text[:-2]
# 提取信息的內容
value = info.find('dd').text
# 將信息添加到字典中
info_dict[key] = value
# 打印書籍的信息
print(info_dict)
# 存儲每本書籍的信息
data_list.append(info_dict)
# 頁碼 page_number 自增
page_number += 1
# 新建 csv 文件存儲書籍信息
with open('books.csv', 'w') as f:
# 將文件對象轉換成 DictWriter 對象
writer = csv.DictWriter(f, fieldnames=['書名', '作者', '出版社', 'ISBN', '頁數', '出版年', '定價'])
# 寫入表頭與數據
writer.writeheader()
writer.writerows(data_list)
“總是覺得想象中的美好生活就要到了,總是期待著
但實際上,現在經歷的每壹件事、體會的每壹種情感,
都是我的生活。”
爬蟲好像真的不簡單,但還是希望我可以學會!可以靠自己做出壹個個小程序!