当前位置: 首页 > 面试题库 >

如何使用BeautifulSoup从内联样式中提取CSS属性

卢俭
2023-03-14
问题内容

我有这样的事情:

<img style="background:url(/theRealImage.jpg) no-repate 0 0; height:90px; width:92px;") src="notTheRealImage.jpg"/>

我正在使用beautifulsoup解析html。有没有办法拉出“背景” css属性中的“ URL”?


问题答案:

您有两种选择-快速,肮脏或正确的方法。快速而肮脏的方式(如果更改标记,则很容易中断)看起来像

>>> from BeautifulSoup import BeautifulSoup
>>> import re
>>> soup = BeautifulSoup('<html><body><img style="background:url(/theRealImage.jpg) no-repate 0 0; height:90px; width:92px;") src="notTheRealImage.jpg"/></body></html>')
>>> style = soup.find('img')['style']
>>> urls = re.findall('url\((.*?)\)', style)
>>> urls
[u'/theRealImage.jpg']

显然,您必须使用它才能使其与多个img标签一起使用。

正确的方法是,建议有人在CSS字符串上使用正则表达式:)会很糟糕,因此使用CSS解析器。cssutils是我刚刚在Google上找到的一个库,可以在PyPi上找到,它看起来可以完成这项工作。



 类似资料:
  • 本文向大家介绍如何在HTML元素中使用内联CSS样式?,包括了如何在HTML元素中使用内联CSS样式?的使用技巧和注意事项,需要的朋友参考一下 使用style 属性设置内联CSS样式。以下是语法- 语法 在这里,mystyles 是一个或多个CSS属性。用分号分隔它们。 示例 您可以尝试运行以下代码以为HTML中的元素实现内联CSS样式-

  • 问题内容: 我有使用内联样式的标记,但是我无权更改此标记。如何仅使用CSS覆盖文档中的内联样式?我不想使用jQuery或JavaScript。 HTML: CSS: 问题答案: 覆盖内联样式的唯一方法是使用CSS规则旁边的关键字。以下是一个示例。 重要笔记: 使用不是一个好的做法。因此,您应避免同时使用内联样式。 将关键字添加到任何CSS规则后,该规则就可以 强行优先 于该元素的 所有其他CSS规

  • 问题内容: 是否有CSS选择器通过其内联样式属性值选择此元素? 就像是 问题答案: 内联属性与任何其他HTML属性没有什么不同,并且可以与子字符串属性选择器匹配: 正是由于这个原因,它 非常脆弱 。由于属性选择器不支持正则表达式,因此只能执行与属性值 完全 匹配的子字符串。例如,如果属性值中的某处有空格,如下所示: 在您更改选择器以适应空间之前,它不会匹配。然后,它将停止匹配 不 包含空格的值,除

  • 问题内容: 我试图在网页上的特定“输入”标签中提取单个“值”属性的内容。我使用以下代码: 我收到TypeError:列表索引必须是整数,而不是str 即使从Beautifulsoup文档中我了解到字符串在这里也不应该是一个问题…但是我没有专家,我可能会误解了。 问题答案: 返回所有找到的元素的列表,因此: 是一个列表(可能仅包含一个元素)。根据你的确切要求,你应该执行以下操作: 或使用仅返回一个(

  • 问题内容: 我非常喜欢React中的内联CSS模式,并决定使用它。 但是,您不能使用和类似的选择器。那么,在使用内联CSS样式时实现悬停时高亮显示的最佳方法是什么? 该有一个状态,并将其作为道具的链接。但是,(我的方式来实现它)包裹的,以便它可以设置并给它。不过,这会使事情有些复杂(例如,包裹在行为上与有所不同)。 有没有更简单的方法? 问题答案: 我处于同样的情况。确实像在组件中保留样式的模式,

  • 问题内容: 我正在抓取页面,并从该页面上的表中获取所有元素,如下所示: 输出: 现在,我试图获取标签的样式,但是我不知道如何。例如,如果我这样做: 它显然只是打印东西。我想我大概可以做这样的事情,比如,但一切到目前为止,我已经尝试并没有带来我想要的东西。 问题答案: 只需使用以下属性即可访问: 如果您只想要具有样式属性an的tr标记来获取全部标记: 或使用CSS选择器: 使用您的实际网址: