【发布时间】:2020-07-18 11:47:24
【问题描述】:
我是 Python 网页抓取的新手,我正在抓取 productreview.com 以供审核。以下代码提取了我进行一次审核所需的所有数据:
#Scrape TrustPilot for User Reviews (Rating, Comments)
import pandas as pd
import numpy as np
from bs4 import BeautifulSoup as bs
import json
import requests
import datetime as dt
final_list=[]
url = 'https://www.productreview.com.au/listings/world-nomads'
r = requests.get(url)
soup = bs(r.text, 'lxml')
for div in soup.find('div', class_ = 'loadingOverlay_24D'):
try:
name = soup.find('h4', class_ = 'my-0_27D align-items-baseline_kxl flex-row_3gP d-inline-flex_1j8 text-muted_2v5')
name = name.find('span').text
location = soup.find('h4').find('small').text
policy = soup.find('div', class_ ='px-4_1Cw pt-4_9Zz pb-2_1Ex card-body_2iI').find('span').text
title = soup.find('h3').find('span').text
content = soup.find('p', class_ = 'mb-0_2CX').text
rating = soup.find('div', class_ = 'mb-4_2RH align-items-center_3Oi flex-wrap_ATH d-flex_oSG')
rating = rating.find('div')['title']
final_list.append([name, location, policy, rating, title, content])
except AttributeError:
pass
reviews = pd.DataFrame(final_list, columns = ['Name', 'Location', 'Policy', 'Rating', 'Title', 'Content'])
print(reviews)
但是当我编辑时
for div in soup.find('div', class_ = 'loadingOverlay_24D'):
到
for div in soup.findAll('div', class_ = 'loadingOverlay_24D'):
我没有得到所有评论,我只是一遍又一遍地得到相同的条目。
任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
您用来识别评论的 CSS 类不正确。例如,
loadingOverlay_24D不是包含div的评论
标签: python web web-scraping