使用lxml,您如何全局替换绝对链接的所有src属性?lxml - 如何将img src更改为绝对链接
3
A
回答
2
经过测试Mikko Ohtamaa的回答,这里有一些笔记。 它适用于很多标签并使用lxm,但有不同的情况,例如background-image:url(xxx)。所以我只是使用正则表达式来替代。 这里的解决方案,
content = re.sub('(?P<left>("|\'))\s*(?P<url>(\w|\.)+(/.+?)+)\s*(?P<right>("|\'))',
'\g<left>' + url[:url.rfind('/')] + '/\g<url>\g<right>', content)
content = re.sub('(?P<left>("|\'))\s*(?P<url>(/.+?)+)\s*(?P<right>("|\'))',
'\g<left>' + url[:url.find('/', 8)] + '\g<url>\g<right>', content)
6
下面是一个例子代码又包括<a href>
:
from lxml import etree, html
import urlparse
def fix_links(content, absolute_prefix):
"""
Rewrite relative links to be absolute links based on certain URL.
@param content: HTML snippet as a string
"""
if type(content) == str:
content = content.decode("utf-8")
parser = etree.HTMLParser()
content = content.strip()
tree = html.fragment_fromstring(content, create_parent=True)
def join(base, url):
"""
Join relative URL
"""
if not (url.startswith("/") or "://" in url):
return urlparse.urljoin(base, url)
else:
# Already absolute
return url
for node in tree.xpath('//*[@src]'):
url = node.get('src')
url = join(absolute_prefix, url)
node.set('src', url)
for node in tree.xpath('//*[@href]'):
href = node.get('href')
url = join(absolute_prefix, href)
node.set('href', url)
data = etree.tostring(tree, pretty_print=False, encoding="utf-8")
return data
The full story is available in Plone developer documentation。
相关问题
- 1. HTTP绝对链接被更改为HTTPS
- 2. 如何在javascript中将img src属性更改为data-src?
- 3. 将img src改为直接链接,用于照片gallary
- 4. 可以将img src值更改为Image?
- 5. WordPress的 - 如何更改相对链接的绝对链接
- 6. 更改img src值
- 7. 更改img的src
- 8. 硒driver.getPageSource(),更改链接绝对
- 9. PHP:通过正则表达式将[img] src [/ img]更改为<img src="src" alt="src" >
- 10. 如何将包含img网址的网址更改为img其他链接?
- 11. 如何更改视图IMG SRC MVC
- 12. 如何用javascript更改img src?
- 13. 更改URL中的WordPress:绝对链接
- 14. 使用jquery更改img src
- 15. 用jQuery更改img src
- 16. 使用jQuery更改img src
- 17. JQuery和更改img src
- 18. 如何使用返回的GET超链接作为HTML中的img src链接
- 19. 将#contentImg的src更改为点击链接内的图像
- 20. 改变IMG SRC
- 21. 想要将img更改为链接,我该怎么做?
- 22. XPath选择图像链接 - 仅当img src的父级href链接存在时,否则选择img src链接
- 23. IMG SRC ID,从链接中设置
- 24. img src“../”和“./”路径url链接
- 25. Html Agility Pack链接和img src提取
- 26. img src链接中的授权标头
- 27. 如何给HTML img src的绝对路径?
- 28. 将相对符号链接转换为绝对符号链接
- 29. 如何相对IMG SRC标签更新为使用javascript
- 30. 如何修改lxml自动链接以更自由?