3.在豆瓣网上爬取某本书的前50条短评内容并计算评分的平均值(自学正则表达式)
时间: 2023-06-19 15:07:17 浏览: 147
这里提供一个Python的实现,需要使用requests和re两个库:
```python
import requests
import re
# 目标书籍在豆瓣的ID
book_id = '1084336'
# 请求的URL
url = f'https://book.douban.com/subject/{book_id}/comments/'
# 发送请求
response = requests.get(url)
# 使用正则表达式匹配评分和短评内容
pattern = '<span class="user-stars allstar(.*?) rating" title=".*?"></span>.*?<span class="short">(.*?)</span>'
result = re.findall(pattern, response.text, re.S)
# 计算评分平均值
total_score = 0
for item in result[:50]:
score, comment = item
total_score += int(score)
average_score = total_score / len(result[:50])
print(f"评分平均值为:{average_score}")
```
需要注意的是,豆瓣网的反爬虫机制比较严格,如果请求过于频繁可能会被封IP,建议加上适当的延时或使用代理IP。
相关问题
豆瓣爬取电影数据 使用工具xpath.RE.bs.正则表达式以及爬取的数据声明
好的,你的第一个问题是关于豆瓣爬取电影数据的工具和方法,以及爬取的数据声明。
首先,豆瓣是一个免费的电影评分网站,每部电影都有一些基本信息,如电影名称、导演、演员、上映时间、评分等等。为了爬取这些信息,我们可以使用 Python 编写爬虫程序,主要使用的工具有:
1. `xpath`:一种用于在 HTML 或 XML 文件中定位元素的语言,可以通过指定路径来获取特定元素的值。
2. `BeautifulSoup`:一个用于解析 HTML 或 XML 文档的 Python 库,可以方便地从 HTML 文档中提取数据。
3. 正则表达式:一种用于匹配文本模式的语言,可以用来从 HTML 或 XML 文档中提取特定的信息。
为了遵守爬虫行为规范,我们需要声明我们爬取的数据是用于学术研究或个人使用的,并且在爬取过程中尽量减少对目标网站造成的负担。同时,我们也需要尊重目标网站的版权和隐私政策。
python爬取豆瓣读书top50(正则表达式)
以下是使用正则表达式爬取豆瓣读书Top50的示例代码:
```python
import requests
import re
# 发送请求获取网页内容
url = 'https://book.douban.com/top250'
response = requests.get(url)
content = response.text
# 使用正则表达式提取书籍信息
pattern = r'<div class="pl2">.*?<a href="(.*?)" title="(.*?)".*?</div>'
results = re.findall(pattern, content, re.S)
# 打印书籍信息
for result in results:
book_url = result[0]
book_title = result[1]
print("书籍链接:", book_url)
print("书籍标题:", book_title)
print("--")
```