爬取豆瓣书籍top250的相关信息 要求有相关书的 '书名', '链接', '作者', '出版社', '出版时间', '价格' 运行结果保存为csv文件,写出相关Python代码
时间: 2024-10-13 20:09:13 浏览: 37
爬取豆瓣图书TOP250信息并简单分析展示
为了爬取豆瓣书籍Top250的相关信息并将其保存到CSV文件中,你可以使用Python的requests库来获取网页内容,BeautifulSoup库解析HTML,以及pandas库处理数据。下面是一个基本的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 定义URL
url = "https://book.douban.com/top250"
def get_book_info(url):
# 发送GET请求
response = requests.get(url)
# 检查请求状态码
if response.status_code == 200:
# 解析HTML
soup = BeautifulSoup(response.text, 'lxml')
# 提取所需信息
books = []
for item in soup.select('.subject a'):
title = item.h2.text
link = "https:" + item['href']
author = item.find('span', {'property': 'v:author'}).text
publisher = item.find('div', {'class': 'pub'}).find('span').text
publication_time = item.parent.next_sibling.strip()[:-1] # 需要具体分析页面结构,这里假设紧跟在出版商信息后的就是出版时间
try:
price = item.find('span', {'itemprop': 'price'}).text
except:
price = '未知'
books.append([title, link, author, publisher, publication_time, price])
# 将数据转换为DataFrame
book_df = pd.DataFrame(books, columns=['书名', '链接', '作者', '出版社', '出版时间', '价格'])
# 保存到CSV文件
book_df.to_csv('douban_books.csv', index=False)
# 执行函数
get_book_info(url)
```
注意:这个代码片段假设了豆瓣书籍Top250的页面结构不变,并且能够通过CSS选择器找到所需的信息。实际运行时,可能会因为网站布局调整而需要修改CSS选择器。此外,某些信息可能难以直接提取,如出版时间和价格,可能需要额外的解析步骤。
阅读全文