簡體   English   中英

使用 selenium 抓取 Tripadvisor 時,如何點擊“更多”按鈕?

[英]How do I click on “More” button when webscraping Tripadvisor using selenium?

我正在嘗試在 Tripadvisor 上抓取一頁書面評論,但在單擊“更多”按鈕時遇到了困難,該按鈕可展開頁面上的所有書面評論。 我查看了類似的查詢(謝謝 Saurabh Gaur),但是當使用 selenium 單擊按鈕時,會彈出此登錄頁面。

登錄頁面照片

有沒有辦法點擊“更多”按鈕而不觸發它? 謝謝! :)

from selenium import webdriver
import re
from bs4 import BeautifulSoup

def clicker(url):
    browser = webdriver.Firefox()
    browser.get(url)

    
    # Use regex to find that button link
    pageSource = browser.page_source
    soup = BeautifulSoup(pageSource, 'html.parser')

    # Example: soup.findAll(True, {'class': re.compile(r'\bclass1\b')})
    Regex = re.compile(r'.*\bmoreLink.ulBlueLinks.*')
    linkElem = soup.find('span', class_=Regex)['class']
    linkElem = '.'.join(linkElem[0:(len(linkElem)+1)])
    moreButton = 'span.' + linkElem

    print(moreButton)

    button = browser.find_element_by_css_selector(moreButton)
    print(button)
    
    browser.execute_script("arguments[0].click()", button) 
    
clicker('https://www.tripadvisor.com.sg/Hotel_Review-g295424-d1209362-Reviews-Residence_Spa_at_One_Only_Royal_Mirage_Dubai-Dubai_Emirate_of_Dubai.html')
 

這是一個示例代碼供您參考,您可以將 selenium 與 phantomjs 一起使用,然后單擊按鈕。 我已經使用了函數“find_element_by_name”中所需的標簽的名稱屬性,您可以根據您的要求進行修改。

from urllib.request import urlopen
from urllib.error import HTTPError
from bs4 import BeautifulSoup
from selenium import webdriver
def openUrl(link):
    driver = webdriver.PhantomJS(
                executable_path='../../phantomjs/bin/phantomjs')
            try:
                driver.get(link)
            except HTTPError as e:
                print ('Error opening ' + link)
                continue
            try:
                bsObj = BeautifulSoup(driver.page_source)
            except AttributeError as e:
                return None

            try:
                elem1 = driver.find_element_by_name('checkAndShowAnswers')
                elem1.click()
            except:
                continue

暫無
暫無

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

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