使用python爬取豆瓣图书信息,包括标题,作者,类别,封面链接,日期,出版社,图书链接等信息,并存储为csv文件
时间: 2024-05-01 22:16:24 浏览: 138
以下是使用Python爬取豆瓣图书信息并存储为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'}
# 创建一个CSV文件,写入表头
csv_file = open('douban_books.csv', 'w', newline='', encoding='utf-8')
writer = csv.writer(csv_file)
writer.writerow(['标题', '作者', '类别', '封面链接', '日期', '出版社', '图书链接'])
# 爬取豆瓣图书信息
for page in range(0, 251, 25):
url = 'https://book.douban.com/top250?start=' + str(page)
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
books = soup.find_all('tr', class_='item')
for book in books:
title = book.find('div', class_='pl2').a['title']
author = book.find('p', class_='pl').get_text()
category = book.find('span', class_='rating_nums').get_text()
cover_link = book.find('a').find('img')['src']
date = book.find('span', class_='p2').get_text().split('/')[0].strip()
publisher = book.find('span', class_='p2').get_text().split('/')[-3].strip()
book_link = book.find('div', class_='pl2').a['href']
# 将数据写入CSV文件
writer.writerow([title, author, category, cover_link, date, publisher, book_link])
csv_file.close()
```
代码中使用了requests库和BeautifulSoup库来爬取网页信息,并使用csv库将数据存储为CSV文件。需要注意的是,豆瓣图书Top250页面是分页的,每页包含25本图书,因此使用for循环遍历每一页,并对每一本图书提取相关信息。最后将每本图书的信息写入CSV文件中。
阅读全文