python爬取豆瓣读书中图书信息,包括标题,作者,类别,封面链接,日期,出版社,图书链接,并存储为csv文件
时间: 2024-06-11 19:10:06 浏览: 120
以下是一个示例代码,使用Python的requests和BeautifulSoup库爬取豆瓣读书中图书信息,并将其存储为csv文件。
```python
import requests
from bs4 import BeautifulSoup
import csv
# 设置请求头,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'}
# 豆瓣读书的图书分类页面
url = 'https://book.douban.com/tag/?view=type&icn=index-sorttags-all'
# 发送请求,获取页面内容
response = requests.get(url, headers=headers)
# 创建BeautifulSoup对象
soup = BeautifulSoup(response.text, 'html.parser')
# 获取所有图书分类的链接
tag_links = soup.select('.tagCol td > a')
# 存储图书信息的列表
books = []
# 遍历每个图书分类的链接,爬取图书信息
for link in tag_links:
tag_url = link['href']
tag_name = link.text
# 发送请求,获取页面内容
response = requests.get(tag_url, headers=headers)
# 创建BeautifulSoup对象
soup = BeautifulSoup(response.text, 'html.parser')
# 获取当前分类下所有图书的信息
book_items = soup.select('.subject-item')
# 遍历每本图书,获取其信息
for item in book_items:
title = item.select_one('.info h2 a').text.strip() # 标题
author = item.select_one('.info .pub').text.split('/')[0].strip() # 作者
category = tag_name # 类别
image_url = item.select_one('.pic img')['src'] # 封面链接
pub_date = item.select_one('.info .pub').text.split('/')[-2].strip() # 日期
publisher = item.select_one('.info .pub').text.split('/')[-1].strip() # 出版社
book_url = item.select_one('.info h2 a')['href'] # 图书链接
# 将图书信息添加到列表中
books.append([title, author, category, image_url, pub_date, publisher, book_url])
# 将图书信息写入csv文件
with open('douban_books.csv', 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.writer(f)
writer.writerow(['标题', '作者', '类别', '封面链接', '日期', '出版社', '图书链接'])
writer.writerows(books)
print('图书信息已保存到douban_books.csv文件中。')
```
执行代码后,将在当前目录下生成一个名为douban_books.csv的csv文件,其中包含爬取到的图书信息。
阅读全文