簡體   English   中英

如何抓取僅在單擊“更多”按鈕后才能解鎖的文本

[英]How to scrape text that only unlocks after clicking “more” button

我試圖從旅行顧問網站上刮取評論。 我成功抓取了評論,但是有些評論很長且部分顯示,直到您單擊“更多”按鈕。

這是網站的鏈接: https : //www.tripadvisor.ca/Hotel_Review-g190479-d3587956-Reviews-The_Thief-Oslo_Eastern_Norway.html#REVIEWS

這是“更多”按鈕的源代碼:

<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()

單擊“更多”按鈕后,如何抓取所有評論?

嘗試在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") 

在此處輸入圖片說明

當您單擊“ More鏈接時,JavaScript代碼將在瀏覽器中運行以獲取數據或跳轉到另一個鏈接, requests將返回html代碼,它無法處理JavaScript。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM