Нахождение рейтинговой оценки URL - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь создать фрейм данных, содержащий обзоры по 20 банкам, и в следующем коде я пытаюсь получить значение рейтинга для 20 клиентов, но мне трудно, так как я новичок в BeautifulSoup и Webscraping.

import pandas as pd
import requests
from bs4 import BeautifulSoup
url = 'https://www.bankbazaar.com/reviews.html'
page = requests.get(url)
print(page.text)
soup = BeautifulSoup(page.text,'html.parser')


 Rating = []
rat_elem = soup.find_all('span')
for rate in rat_elem:
    Rating.append(rate.find_all('div').get('value')) 

 print(Rating)

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019
import pandas as pd
import requests
from bs4 import BeautifulSoup
url = 'https://www.bankbazaar.com/reviews.html'
page = requests.get(url)
print(page.text)
soup = BeautifulSoup(page.text,'html.parser')

# Find all the span elements where the "itemprop" attribute is "ratingvalue". 
Rating = [item.text for item in soup.find_all('span', attrs={"itemprop":"ratingvalue"})]


print(Rating)
# The output
# ['4.0', '5.0', '5.0', '5.0', '4.0', '4.0', '5.0', '5.0', '5.0', '5.0', '4.0', '5.0', '5.0', '5.0', '5.0', '4.0', '4.5', '4.0', '4.0', '4.0']

Аргументы ключевого слова BeautifulSoup

0 голосов
/ 22 февраля 2019

Я предпочитаю использовать CSS-селекторы, поэтому вы должны иметь возможность нацеливать на все промежутки, выбирая те, для которых атрибут itemprop установлен на ratingvalue.

import pandas as pd
import requests
from bs4 import BeautifulSoup
url = 'https://www.bankbazaar.com/reviews.html'
page = requests.get(url)
print(page.text)
soup = BeautifulSoup(page.text,'html.parser')

Rating = []
for rate in soup.select('span[itemprop=ratingvalue]'):
    Rating.append(rate.get_text()) 

print(Rating)

Соответствующий вывод

['4.0', '5.0', '5.0', '5.0', '4.0', '4.0', '5.0', '5.0', '5.0', '5.0', '4.0', '5.0', '5.0', '5.0', '5.0', '4.0', '4.5', '4.0', '4.0', '4.0']  

РЕДАКТИРОВАТЬ: добавить соответствующие выходные данные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...