如何使用BeautifulSoup创建样式表外部链接?

埃里克森·威廉斯(Ericson Willians)

带有“ rel”,“ href”和“ type”的链接,如下所示:

<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">

只是为了证明我已经尝试过,这是我失败的尝试:

def add_css(self, *links):
    if links:
        new_soup = BeautifulSoup("<link>")
        for link in links:
            new_soup.attrs["rel"] = "stylesheet"
            new_soup.attrs["href"] = link
            new_soup.attrs["type"] = "text/css"
        self.soup.head.insert(0, new_soup)
        self.update_document()

输出:

<html>
<head><html><head><link/></head></html>
<title></title>
</head>
<body></body>
</html>

如您所见,那里有一个空的链接标签。顺便说一下,我已经尝试过了:

webpage.add_css("css/bootstrap.min.css")
维维克·萨布尔(Vivek Sable)

我们直接创建如下:

>>> new_soup = BeautifulSoup('<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">')
>>> new_soup
<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css" />
>>> type(new_soup)
<class 'BeautifulSoup.BeautifulSoup'>
>>> 

与代码有关,有很多links,因此createlink tag语句需要在for循环内

    for link in links:
        new_soup = BeautifulSoup('<link rel="stylesheet" href="%s" type="text/css">'%link)
        self.soup.head.insert(0, new_soup)
    self.update_document()

[编辑2]插入link标签到HTML通过BeautifulSoup:

演示

>>> from BeautifulSoup import BeautifulSoup
# Parser content by BeautifulSoup.
>>> soup = BeautifulSoup("<html><head></head><body></body></html>")
>>> soup
<html><head></head><body></body></html>
# Create New tag.
>>> new_tag = BeautifulSoup('<link rel="stylesheet" href="css/bootstrap.min.css"/>')
>>> new_tag
<link rel="stylesheet" href="css/bootstrap.min.css" />
# Insert created New tag into head tag i.e. first child of head tag.
>>> soup.head.insert(0,new_tag)
>>> soup
<html><head><link rel="stylesheet" href="css/bootstrap.min.css" /></head><body></body></html>
>>> new_tag = BeautifulSoup('<link rel="stylesheet" href="css/custom1.css"/>')
>>> new_tag
<link rel="stylesheet" href="css/custom1.css" />
>>> soup.head.insert(0,new_tag)
>>> soup
<html><head><link rel="stylesheet" href="css/custom1.css" /><link rel="stylesheet" href="css/bootstrap.min.css" /></head><body></body></html>
>>> 

[编辑3]

我认为您是BeautifulSoupbs4模块导入

BeautifulSoup 是类,并且将html内容作为参数。

创建新标签:

使用类的new_tag方法BeautifulSoup来创建新标签。

使用的attrs属性new_tag添加classhref属性及其值。

演示

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup("<html><head></head><body></body></html>")
>>> soup
<html><head></head><body></body></html>
>>> new_link =  soup.new_tag("link")
>>> new_link
<link/>
>>> new_link.attrs["href"] = "custom1.css"
>>> new_link
<link href="custom1.css"/>
>>> soup.head.insert(0, new_link)
>>> soup
<html><head><link href="custom1.css"/></head><body></body></html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章