【发布时间】:2016-10-26 06:15:49
【问题描述】:
我正在尝试对 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')
【问题讨论】:
-
请查看这篇文章 - stackoverflow.com/questions/28371989/…
-
谢谢!我已经尝试过,它仍然无法正常工作。我仍然得到登录页面。这是他们的某种形式的反刮擦措施吗?请帮忙!
标签: javascript python selenium web-scraping