You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用BeautifulSoup爬取Goodreads书评仅返回20条结果的问题

解决Goodreads书评爬取数量不足的问题

直接用requests.get()发起请求时,服务器可能识别出你是爬虫,返回的内容和浏览器实际加载的不一致,这就是你只能拿到20条书评的核心原因。解决思路很简单——给请求加上浏览器的请求头,模拟正常用户访问。

修改后的代码如下:

import requests
from bs4 import BeautifulSoup

url = "https://www.goodreads.com/book/show/26114463/reviews?reviewFilters={%22workId%22:%22kca://work/amzn1.gr.work.v1.lSjSf2r-G6D1advk_kunEg%22,%22after%22:%22NjAwMDEsMTU4Njg4NDczNzY1MQ%22}"

# 添加请求头,模拟浏览器访问
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}

html_text = requests.get(url, headers=headers).text
soup = BeautifulSoup(html_text, 'html.parser')

# 提取书评元素(需根据页面实际结构调整选择器)
reviews = soup.find_all("div", class_="reviewText")
print(f"共获取到{len(reviews)}条书评")
for idx, review in enumerate(reviews, 1):
    print(f"第{idx}条书评:{review.get_text(strip=True)}")

额外说明:

  • 可以替换User-Agent为你当前浏览器的真实UA,进一步降低被识别为爬虫的概率
  • 提取书评时,要对照Goodreads页面的HTML结构调整标签和类名,确保选择器能精准定位到书评内容
  • 若加请求头后仍只有20条,大概率是页面部分内容通过AJAX动态加载,但你提到首次加载显示30条,所以加请求头基本能解决问题

内容的提问来源于stack exchange,提问作者beans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 19:05:56