我想在一个网站上创建多个wb页面。 现在我的代码可以从第一页刮评论。 我想它从相关页面刮评论。 在本例中直到第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。 我会很感激你的帮助。 谢谢
从第一页刮除所有评论后切换到下一页,这样做直到你得到所有评论。 只需让您的程序点击底部的“NextPage”箭头即可继续。
这就是第一个页面https://www.mouthshut.com/product-reviews/kotak-811-mobile-banking-reviews-925917218,对。 其余页面的URL末尾有-page-x
。 所以您可以在脚本中创建一个for循环,如下所示。
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)