用python爬取豆瓣读书Top250的排名,名称,短评数量,第一条评论并用Excel显示不要用pandas
时间: 2025-06-02 16:36:24 浏览: 103
在Python中爬取豆瓣读书Top250的信息通常需要用到网络爬虫技术,这里我们可以结合BeautifulSoup库抓取HTML数据,然后利用requests库获取网页内容,最后通过正则表达式处理提取需要的数据。以下是一个简单的步骤说明:
1. 首先,安装必要的库(如果尚未安装):
```bash
pip install requests beautifulsoup4
```
2. 使用`requests`获取豆瓣读书Top250的页面源码:
```python
import requests
url = 'https://book.douban.com/top250'
response = requests.get(url)
html_content = response.text
```
3. 使用`beautifulsoup4`解析HTML内容:
```python
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_content, 'lxml')
books_list = soup.find('ol', class_='grid_view').find_all('li', class_='item')
```
4. 创建一个空列表存储书籍信息,包括排名、书名、短评数量和第一条评论:
```python
books_data = []
for book in books_list[:250]: # 假设前250本书可以显示全部信息
rank = int(book.find('span', class_='rating_num').text) # 排名
title = book.h3.a['title'] # 书名
comment_count = int(book.find('span', class_='pl').text.split()[0]) # 短评数量
first_review = None # 获取第一条评论较为复杂,可能需要遍历更多元素,这里暂不展示
books_data.append((rank, title, comment_count, first_review))
```
5. 将数据写入Excel文件:
```python
# 导入xlwt模块,用于创建Excel文件
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Douban Top 250')
for i, (rank, title, comment_count, _) in enumerate(books_data):
sheet.write(i, 0, rank)
sheet.write(i, 1, title)
sheet.write(i, 2, comment_count)
# 写入文件
file_name = 'douban_top_250.xlsx'
workbook.save(file_name)
```
注意:实际操作中获取第一条评论可能比较繁琐,因为豆瓣读书可能使用了JavaScript渲染动态内容,这将超出纯HTML爬虫的能力范围。另外,豆瓣可能有反爬策略,爬取时需遵守网站robots.txt协议,并尊重其服务条款。
阅读全文
相关推荐

















