我正在尝试从 https:// www中提取评级。 trueorfiction.com/are-americans-annual-healthcare-undocumented/ ,以便从HTML代码中提取“ ratingValue”和“ alternateName”字段:
我尝试使用以下代码来做到这一点:
import json
从bs4导入BeautifulSoup
slink ='https://www.truthorfiction.com/are-americans-annually-healthcare-undocumented/'
响应= http.request('GET',slink)
汤= BeautifulSoup(response.data)
tmp = json.loads(soup.find('script',type ='application / ld + json')。text)
但是,tmp而是显示了我想提取的评级之前的'application / ld + json'项目的字典,我想知道如何循环或循环到脚本的相关部分,评分已存储。
答案 0 :(得分:0)
您需要使用键访问元素。
rating_value = tmp['reviewRating']['ratingValue'] # -1
alternate_name = tmp['reviewRating']['alternateName'] # 'True'
或
review_rating = tmp['reviewRating']
rating_value = review_rating['ratingValue'] # -1
alternate_name = review_rating['alternateName'] # 'True'
答案 1 :(得分:0)
它有2个.clock()
,您可以从<script type=application/ld+json>
中选择第二个索引
find_all()
或循环并搜索是否包含字符串
tmp = json.loads(soup.find_all('script', type='application/ld+json')[1].text)