Я хочу создать несколько страниц WB на веб-сайте. Прямо сейчас мой код может очищать обзоры с 1-й страницы. Я бы хотел, чтобы он соскребал обзоры с связанных страниц. В этом примере до страницы 8. Это ссылка на веб-сайт https://www.mouthshut.com/product-reviews/Kotak-811-Mobile-Banking-reviews-925917218
import requests from bs4 import BeautifulSoup import pandas as pd import csv URL = "https://www.mouthshut.com/product-reviews/Kotak-811-Mobile-Banking-reviews-925917218" r = requests.get(URL) soup = BeautifulSoup(r.content, 'html5lib') reviews = [] # a list to store reviews # Use a CSS selector to extract all the review containers review_divs = soup.select('div.col-10.review') for element in review_divs : review = {'Review_Title': element .a.text, 'URL': element .a['href'], 'Review': element .find('div', {'class': ['more', 'reviewdata']}).text.strip()} reviews.append(review) df = pd.DataFrame(reviews) print(df)
Я хочу хранить все обзоры с 8 страниц в одном фрейме данных df. Буду признателен за помощь. Спасибо
Итак, это первая страница https://www.mouthshut.com/product-reviews/Kotak-811-Mobile-Banking-reviews-925917218, верно. Остальные страницы имеют -page-x в конце URL-адреса. Так что вы можете просто сделать для l oop в своем скрипте, вот так.
-page-x
import requests from bs4 import BeautifulSoup import pandas as pd import csv URL = "" for x in range(1, 9): if x == 1: URL = "https://www.mouthshut.com/product-reviews/Kotak-811-Mobile-Banking-reviews-925917218" else: URL ="https://www.mouthshut.com/product-reviews/Kotak-811-Mobile-Banking-reviews-925917218-page-{}".format(x) r = requests.get(URL) soup = BeautifulSoup(r.content, 'html5lib') reviews = [] # a list to store reviews # Use a CSS selector to extract all the review containers review_divs = soup.select('div.col-10.review') for element in review_divs : review = {'Review_Title': element .a.text, 'URL': element .a['href'], 'Review': element .find('div', {'class': ['more', 'reviewdata']}).text.strip()} reviews.append(review) df = pd.DataFrame(reviews) print(df)
Переключитесь на следующую страницу после очистки всех обзоров с первой страницы и делайте то же самое, пока не получите все отзывы. Просто заставьте вашу программу щелкнуть по стрелке «следующая страница» внизу, чтобы продолжить.