另外需要提取前10页,并且要导出一个excel,请根据上述代码给出全部代码
时间: 2024-03-29 09:36:11 浏览: 126
导出Excel的代码
好的,下面是修改后的代码,可以提取豆瓣小说标签下前10页的所有小说信息,并将其导出为一个Excel文件:
```python
import requests
from bs4 import BeautifulSoup
import openpyxl
# 设置请求头,模拟浏览器请求
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.3'}
# 构造URL列表
urls = ['https://book.douban.com/tag/小说?start={}'.format(str(i)) for i in range(0, 100, 20)]
# 创建一个Excel文件
workbook = openpyxl.Workbook()
sheet = workbook.active
sheet.title = '豆瓣小说'
# 遍历URL列表,提取信息
for url in urls:
# 发送请求
response = requests.get(url, headers=headers)
# 解析响应,获取小说列表
soup = BeautifulSoup(response.text, 'html.parser')
book_list = soup.find_all('li', class_='subject-item')
# 遍历小说列表,提取信息
for book in book_list:
# 提取小说名称
name = book.find('h2').a.text.strip()
# 提取作者
author = book.find('div', class_='pub').text.split('/')[0].strip()
# 提取出版社名称
publisher = book.find('div', class_='pub').text.split('/')[-3].strip()
# 提取书的价钱
price = book.find('div', class_='pub').text.split('/')[-1].strip()
# 将提取到的信息写入Excel文件
row = [name, author, publisher, price]
sheet.append(row)
# 打印进度
print('已提取第{}页的信息'.format(int(url.split('=')[-1]) // 20 + 1))
# 保存Excel文件
workbook.save('豆瓣小说.xlsx')
print('已将豆瓣小说标签下前10页的信息导出为Excel文件')
```
这个代码会提取豆瓣小说标签下前10页的所有小说的名称、作者、出版社和价格,并将其导出为一个名为“豆瓣小说.xlsx”的Excel文件。请注意,Excel文件需要使用OpenPyXL库来创建和写入,如果您的Python环境中没有安装该库,请先进行安装。
阅读全文