如何点击"更多"使用selenium对Tripadvisor进行webscraping时的按钮?

时间:2016-10-26 06:15:50

标签: javascript python selenium web-scraping

我试图在Tripadvisor上浏览一页书面评论,但是在点击"更多"用于扩展页面上所有书面评论的按钮。我已经看了类似的查询(谢谢Saurabh Gaur),但是当使用selenium点击按钮时,会弹出这个登录页面。

login page photo

有没有办法点击"更多"按钮没有触发这个?谢谢! :)

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

1 个答案:

答案 0 :(得分:1)

以下是供您参考的示例代码,您可以将selenium与phantomjs一起使用,然后单击按钮。我使用了函数" find_element_by_name"中需要的标记的name属性,你可以根据你的要求修改它。

 when(SITE_URL + '/paysucc', {
        templateUrl: TEMPLATE_URL + '/partials/paysucc.html',
        controller: 'PaymentsuccessController'
    })