用代码实现豆瓣图书前250:https://book.douban.com/top250 数据内容:作者、 出版社、 出版年、 页数、 定价、装帧、评分、39408人在读、569770人读过、157297人想读的爬取
时间: 2023-10-10 07:09:47 浏览: 48
好的,以下是实现该功能的 Python 代码示例:
```python
# 导入所需的库
import requests
from bs4 import BeautifulSoup
# 设置请求头部信息,模拟浏览器访问
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'}
# 循环访问每一页数据,每页有25本书
for i in range(0, 250, 25):
url = 'https://book.douban.com/top250?start={}'.format(i)
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')
# 获取图书列表
book_list = soup.find('div', {'class': 'article'}).find_all('tr', {'class': 'item'})
# 循环获取每本书的信息
for book in book_list:
book_name = book.find('div', {'class': 'pl2'}).find('a')['title']
book_url = book.find('div', {'class': 'pl2'}).find('a')['href']
book_info = book.find('p', {'class': 'pl'}).get_text().split('/')
book_author = book_info[0].strip()
book_publisher = book_info[-3].strip()
book_year = book_info[-2].strip()
book_page = book_info[-1].strip()
book_price = book.find('span', {'class': 'price-tag'}).get_text().strip()
book_rating = book.find('span', {'class': 'rating_nums'}).get_text().strip()
book_read = book.find('span', {'class': 'pl'}).get_text().strip()
book_read = ''.join(filter(str.isdigit, book_read))
book_done = book.find_all('span', {'class': 'pl'})[1].get_text().strip()
book_done = ''.join(filter(str.isdigit, book_done))
book_wish = book.find_all('span', {'class': 'pl'})[2].get_text().strip()
book_wish = ''.join(filter(str.isdigit, book_wish))
book_cover = book.find('img')['src']
# 打印每本书的信息
print('书名:', book_name)
print('链接:', book_url)
print('作者:', book_author)
print('出版社:', book_publisher)
print('出版年:', book_year)
print('页数:', book_page)
print('定价:', book_price)
print('装帧:', book_info[-4].strip())
print('评分:', book_rating)
print('在读人数:', book_read)
print('读过人数:', book_done)
print('想读人数:', book_wish)
print('封面链接:', book_cover)
print('\n')
```
代码中使用了 requests 库进行网络请求,使用了 BeautifulSoup 库进行 HTML 解析。首先设置请求头部信息,然后循环访问每一页数据,每页有25本书。在循环内部,先获取图书列表,然后循环获取每本书的信息,包括书名、作者、出版社、出版年、页数、定价、装帧、评分、在读人数、读过人数、想读人数、封面链接等信息,并打印出来。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)