爬取人民邮电出版社(https://www.ptpress.com.cn/)中的新出推荐中的类别,已经相关类别中的书籍列表,最后按照目录类别保存相关的书籍列表,并把数据存储在book.csv文件中。写一个完整的python代码
时间: 2024-06-17 17:04:47 浏览: 204
好的,以下是Python代码实现:
```python
import requests
from bs4 import BeautifulSoup
import csv
# 请求页面,获取HTML内容
url = 'https://www.ptpress.com.cn/category/newbook'
response = requests.get(url)
html = response.content.decode('utf-8')
# 解析HTML内容
soup = BeautifulSoup(html, 'html.parser')
category_list = soup.find_all('div', class_='list').find_all('h3')
# 遍历类别列表,获取每个类别的书籍列表,并写入csv文件中
with open('book.csv', 'w', encoding='utf-8', newline='') as csvfile:
writer = csv.writer(csvfile)
for category in category_list:
# 获取类别名称
category_name = category.find_all('a').text.strip()
print(category_name)
# 获取该类别下的书籍列表
book_list = category.find_next_sibling().find_all('a')
for book in book_list:
# 获取书籍名称和链接
book_name = book.text.strip()
book_link = book['href']
print(book_name, book_link)
# 将书籍名称、链接和类别名称写入csv文件中
writer.writerow([book_name, book_link, category_name])
```
其中,使用requests库请求页面,使用BeautifulSoup库解析HTML内容。首先获取类别列表,然后遍历每个类别,获取该类别下的书籍列表,最后将书籍名称、链接和类别名称写入csv文件中。
阅读全文