我试图从旅行顾问网站上搜索一篇评论。我成功地抓取了评论,但有些评论很长并且部分显示,直到您点击"更多"按钮。
这是"更多"的源代码。按钮:
<span class= soup.findAll(attrs={"class": "entry"}):
review = item.text.replace(',', '').replace('\n', ' ').encode('utf-8').strip()
这就是我从网页上抓取评论的方式
for item in soup.findAll(attrs={"class": "entry"}):
review = item.text.replace(',', '').replace('\n', ' ').encode('utf-8').strip()
如何在点击更多按钮后抓取所有评论?
答案 0 :(得分:1)
尝试在Selenium中加载页面。这将允许您与JavaScript进行交互。我没有尝试使用BeautifulSoup,但我认为它看起来像这样:
from selenium import webdriver
import BeautifulSoup
browser = webdriver.Firefox() #Or any other driver you want
browser.get('https://www.tripadvisor.ca/Hotel_Review-g190479-d3587956-Reviews-The_Thief-Oslo_Eastern_Norway.html#REVIEWS')
next_btn = browser.find_element_by_xpath('PATH_FOR_NEXT_LINK_ELEMENT')
next_btn.click()
html_source = browser.page_source
browser.quit()
soup = BeautifulSoup.BeautifulSoup(html_source)
review = soup("YOUR_SCRAPING_LOGIC")
答案 1 :(得分:0)