當前位置:成語大全網 - 新華字典 - 2022-04-16 爬蟲day4 <解析網頁-存儲數據>

2022-04-16 爬蟲day4 <解析網頁-存儲數據>

import requests

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)

“總是覺得想象中的美好生活就要到了,總是期待著

但實際上,現在經歷的每壹件事、體會的每壹種情感,

都是我的生活。”

爬蟲好像真的不簡單,但還是希望我可以學會!可以靠自己做出壹個個小程序!