【发布时间】:2021-01-02 16:34:29
【问题描述】:
我正在尝试抓取网站。网址在这里https://www.edmunds.com/kia/telluride/2021/consumer-reviews/?pagesize=50
第一个问题是评分有星星。所以我的问题是我怎样才能得到他们评价的星星?我需要整数形式的结果。
<span class="rating-stars text-primary-darker mr-0_25" aria-label="5 out of 5 stars">
<span class="rating-star icon-star-full"></span>
<span class="rating-star icon-star-full"></span>
<span class="rating-star icon-star-full"></span>
<span class="rating-star icon-star-full"></span>
<span class="rating-star icon-star-full"></span>
</span>
第二个问题是如何拆分和获取日期数据和用户名?
我试过了
source.find(class_ = 'small text-gray mb-2') #type: bs4.element.Tag
有输出。
<div class="small text-gray mb-2"><div>Vic<!-- -->, <!-- -->10/17/2020</div><div>EX 4dr SUV (3.8L 6cyl 8A)</div></div>
Vic 是用户名,10/17/2020 是日期数据。
这是我的代码。
chrome_driver = '/Users/chromedriver'
driver = webdriver.Chrome(chrome_driver)
url = 'https://www.edmunds.com/kia/telluride/2021/consumer-reviews/?pagesize=50'
driver.get(url)
src = driver.page_source
source = BeautifulSoup(src, 'html.parser', from_encoding='utf-8')
review_list = source.find_all('div', class_ = "review-item text-gray-darker")
sid = SentimentIntensityAnalyzer()
sum_review = ''
driver.close()
for review in review_list:
list1 = []
score = review.find('span').get_text()
title = review.find('a').get_text().replace('\n', '')
writer = review.find('div', {'class': 'small text-gray mb-2'}).get_text()
date = review.find('span', {'class': 'review-date'}).get_text()
content = review.find('div', {'class': 'truncated-text size-16'}).get_text()
list1.append(score)
list1.append(title)
list1.append(writer)
list1.append(date)
list1.append(content)
sum_review = sum_review + content
lines_list = tokenize.sent_tokenize(content)
非常感谢您的回答!
【问题讨论】:
标签: python python-3.x web-scraping beautifulsoup web-crawler