【问题标题】:python, requests, lxml: simulate tab change on css gridpython,requests,lxml:在 css 网格上模拟选项卡更改
【发布时间】:2020-12-17 20:52:53
【问题描述】:

我正在使用 requests 和 lxml 从 thesaurus.com 抓取数据

以这个网址为例:https://www.thesaurus.com/browse/mass

我可以用这段代码得到我想要的:

  url = 'https://www.thesaurus.com/browse/' + 'mass'
  r = requests.get(url)
  tree = lxml.html.fromstring(r.content)
  raw_syn_list = tree.xpath('//h2[text()="other words for "]/following-sibling::ul//text()')

但我不知道如何以编程方式访问第二大众感。它在网站上组织为同义词网格上方的另一个选项卡。

image of the tabs

当您单击站点上的选项卡时,相关的 html 元素将被替换。我猜这发生在某个地方的 javascript 函数中,但我似乎找不到它。

【问题讨论】:

  • 如果我理解正确:您想从 bulk,measurement 下的第二个选项卡中刮掉单词?
  • 没错。从 requests.get(url) 返回的 html 文档仅包含第一个选项卡中的单词。所以我试图弄清楚如何模拟标签更改或以其他方式访问它们。

标签: python xpath web-scraping python-requests lxml


【解决方案1】:

查看浏览器开发者工具中的行为,整个页面重新加载。单击选项卡后,重新运行加载定义的代码,将其视为新页面,并且不要重复使用以前的 webelement 实例。在上面的示例代码中,

  • 点击标签
  • 重做从 requests.getUrl() 开始的所有内容,使用不同的变量名 这应该会为您提供新内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-05
    • 2016-01-08
    • 2013-11-25
    相关资源
    最近更新 更多