当前位置: 首页 > 知识库问答 >
问题:

用beautifulsoup和python清除按钮单击时隐藏的文本?

曾新
2023-03-14

所以我尝试着用下面的网址:Website

页面有一些隐藏的文本,点击后解锁。它们的超文本标记语言代码也被隐藏,并在单击按钮后解除隐藏。

我怎样才能把这篇课文删掉?

美丽的汤对这篇文章不起作用。

共有3个答案

苍和裕
2023-03-14

你不需要刮擦,在引擎盖下有ajax调用

import requests
import re
from bs4 import BeautifulSoup

soup = BeautifulSoup(requests.get('https://en.indonetwork.co.id/company/surrama-groups').text)
v = soup.find(class_='btn btn-contact btn-contact-phone btn-contact-ajax').attrs
data_id = v['data-id']
data_text = v['data-text']
data_type = v['data-type']

data = requests.post('https://en.indonetwork.co.id/ajax', json={
    'id': data_id,
    'text': data_text,
    'type': data_type,
    'url': "leads/ajax"
}).json()

mobile_no = re.findall(r'(\d+)', data['text'])
print(mobile_no) #['622122520556', '6287885720277']
姜明贤
2023-03-14

它不能与beautifulsoup一起工作,因为它不是静态的站点。我的意思是,当您单击电话按钮时,它会将请求发送到apiendpoint,然后呈现来自该请求的响应。您可以在开发工具的“网络”选项卡中检查此项。(我证实了这一点)

BeautifulSoup仅从请求检索第一个静态html。它不考虑由用户交互触发的请求。

以下是完成此操作的确切步骤。

  1. 使用headerful浏览器加载html" target="_blank">selenium。(headerful浏览器允许您轻松与网页交互)

您可以直接将请求发送到完全相同的api终结点。但它会有一些安全障碍,比如cors。

这不是一个好的解决方案,因为apiendpoint可能会发生更改,或者由于此api调用包含电话号码,所以它们可以使此设置更安全,以备将来使用。但网页上的交互几乎保持不变。

蓝昊然
2023-03-14

如果打开开发工具并单击这些按钮,您可以看到您向https://en.indonetwork.co.id/ajax.

因此,您可以尝试复制它——看看您是否可以从主页的刮擦中捕获发布请求中发送的有效载荷并发送它。

或者您可以使用selenium加载页面,单击按钮,然后捕获数据。

 类似资料:
  • 我正在用Selenium开发简单的自动化。我需要单击一个特定的按钮。我不能,因为它隐藏在没有类的div/table中。 我附上了一个html的截图。我确实尝试过xpath、css选择、选择,但仍然一无所获。 HTML

  • 我正在尝试隐藏按钮div和显示一个隐藏的div后,一个表单按钮已经被点击,加上延迟提交/重定向。下面是我想出的办法,但似乎没有100%奏效。 null null 任何建议都非常感谢

  • 有没有可能用硒点击具有相同文本的乘法按钮?

  • 我想单击以下按钮: https://i.stack.imgur.com/ifiDC.png 到目前为止,我的代码看起来像这样,但什么也没发生: https://i.stack.imgur.com/Cgi5v.png 谢谢你的帮助:)

  • 我有一个简单的javafxgui,上面有一个HBox,它包含几个组合框,最终将充当过滤器。我不知道如何在单击“清除”按钮时将组合框的值重置为空字符串。任何提示都将不胜感激。 更新:这是我的代码,为我工作

  • 问题内容: 我只是注意到IE7中有一个奇怪的行为。 我有带有相关标签的单选按钮,如下所示: 单选按钮通过CSS隐藏,显示:无或可见性:隐藏(不问) 问题是-当我单击IE7中的标签(尚未查看其他IE版本)时,实际上未选中关联的单选按钮。我通过jquery确认了这一点- 标签click事件被触发,但单选按钮click事件未触发。表单过帐还确认选中的单选按钮没有更改。 这在firefox中可以正常使用,