item['RatingNumber'] = "".join( trees.xpath('//*[@id="interest_sectl"]/div/div[2]/strong/text()')).replace(" ", "")改为用xpath爬取豆瓣图书标签: 中国文学下所有书籍(至少爬取前10页)的豆瓣评分
时间: 2024-02-27 10:51:19 浏览: 111
爬取某个用户在豆瓣上标记的想读的图书
好的,我可以提供代码示例来回答您的问题。
首先,您需要安装Python的requests和lxml库,可以通过以下命令进行安装:
```
pip install requests
pip install lxml
```
然后,您可以使用以下代码来爬取豆瓣图书标签中中国文学分类下所有书籍的豆瓣评分:
```python
import requests
from lxml import etree
url = 'https://book.douban.com/tag/%E4%B8%AD%E5%9B%BD%E6%96%87%E5%AD%A6?start={}&type=T'
score_list = []
for i in range(10):
start = i * 20
response = requests.get(url.format(start))
html = etree.HTML(response.text)
book_list = html.xpath('//ul[@class="subject-list"]/li')
for book in book_list:
score = book.xpath('.//span[@class="rating_nums"]/text()')
if score:
score_list.append(float(score[0]))
print(score_list)
```
解释一下上述代码:
1. 首先,我们定义了一个URL模板,其中`{}`的位置将会被替换成不同的页数。
2. 然后,我们定义了一个空列表`score_list`,用于存储所有书籍的豆瓣评分。
3. 接下来,我们使用一个循环来遍历前10页的书籍。在每个循环中,我们使用`requests`库发送GET请求,获取当前页的HTML代码。
4. 然后,我们使用`lxml`库的`etree`模块来解析HTML代码,并使用XPath表达式提取每本书的豆瓣评分。如果某本书没有评分,则跳过该书籍。
5. 最后,我们将所有评分添加到`score_list`列表中,并最终输出该列表。
希望这段代码能够回答您的问题。
阅读全文