【问题标题】:How to get full text even after clicking on link to expand text using selenium?即使单击链接以使用 selenium 扩展文本,如何获取全文?
【发布时间】:2016-07-28 13:42:56
【问题描述】:

我正在尝试从tripadvisor 网站上抓取评论。文本较长的评论部分显示为“更多”链接。我已经使用 selenium 来点击“更多”链接并且它正在工作,但我在最终输出文件中再次获得了一半的评论。

我发现完整的评论存储在不同的类中,但我如何访问不同的类?

请看下面我的部分代码:

driver.get(full_url)
driver.find_element_by_css_selector("span.moreLink").click()
r = requests.get(full_url)
soup = BeautifulSoup(r.content, "lxml")
#soup = BeautifulSoup(source, 'html.parser')
page_count = int(soup.select('.pagination a')[-1].text.strip())
page_results = soup.find_all("p", {"class" : "partial_entry"})

【问题讨论】:

    标签: python selenium web-scraping


    【解决方案1】:

    当您执行requests.get(full_url).content 时,您将获得页面的原始标记。这与driver 所处的状态无关(注意get 调用既没有通过driver 也没有在driver 上运行on)。这就像在 Firefox 中打开一个网站,然后运行 ​​curl 以获取内容一样非常真实 - 两者彼此不知道。

    您需要做的是询问 driver 标记当前是什么样的,例如使用 driver.find_element_by_css_selector("span").text

    【讨论】:

    • 你需要在点击 URL 后弄清楚哪个 CSS 选择器与内容真正匹配。 span 只是一个例子。
    猜你喜欢
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    相关资源
    最近更新 更多