在Python中创建超链接列表

时间:2018-05-08 12:21:40

标签: python html hyperlink

如果我需要多个超链接怎么办?一个又一个,每个都在一个新的线上。我得到“位置参数跟随关键字参数”。

out = open("index.html", "w")
out.write(page.format(
heading = "<h1>Road Fatalities in Australia</h1>", 
contents1 = "<p>On this site you will find road fatality statistical data.</p>", 
contents2 = "<p>...</p>", 
contents3 = "<p>...</p>", 
link = '<a href="fatalities_per_year.html">A Look at Death Rates Over the Years</a>',
'<a href="fatalities_per_state.html">Which State has the Highest Fatality Rate?</a>',
'<a href="fatalities_per_day.html">Which Day of the Week is Deadliest?</a>',
'<a href="fatalities_per_time.html">Which Time of Day is the Deadliest?</a>',
'<a href="fatalities_trucks.html">How Many Trucks are in Fatal Crashes</a>',
'<a href="fatalities_speed_zones.html">Which Speed Zones are the Deadliest?</a>',
'<a href="fatalities_gender.html">Does Your Gender Increase the Risk of Dying?</a>',
'<a href="fatalities_age.html">Does Your Age Have Anything to do With Death-rates?</a>',
'<a href="fatalities_user.html">Fatality Data</a>'))
out.close()

我也试过这个:

out = open("index.html", "w")
out.write(page.format(
heading = "<h1>Road Fatalities in Australia</h1>", 
contents1 = "<p>On this site you will find road fatality statistical data.</p>", 
contents2 = "<p>...</p>", 
contents3 = "<p>...</p>", 
link = '<ul>
    <li><a href="fatalities_per_year.html">A Look at Death Rates Over the Years</a></li>
    <li><a href="fatalities_per_state.html">Which State has the Highest Fatality Rate?</a></li>
    <li><a href="fatalities_per_day.html">Which Day of the Week is Deadliest?</a></li>
    <li><a href="fatalities_per_time.html">Which Time of Day is the Deadliest?</a></li>
    <li><a href="fatalities_trucks.html">How Many Trucks are in Fatal Crashes</a></li>
    <li><a href="fatalities_speed_zones.html">Which Speed Zones are the Deadliest?</a></li>
    <li><a href="fatalities_gender.html">Does Your Gender Increase the Risk of Dying?</a></li>
    <li><a href="fatalities_age.html">Does Your Age Have Anything to do With Death-rates?</a></li>
    <li><a href="fatalities_user.html">Fatality Data</a></li>
</ul>'
out.close()

我只需要一个接一个地列表中的链接。没有什么特别的,如下:

了解多年来的死亡率

哪个州的死亡率最高?

...等...

提前致谢

3 个答案:

答案 0 :(得分:1)

使用BeautifulSoup

from bs4 import BeautifulSoup

link = '''<ul>
<li><a href="fatalities_per_year.html">A Look at Death Rates Over the Years</a></li>
<li><a href="fatalities_per_state.html">Which State has the Highest Fatality Rate?</a></li>
<li><a href="fatalities_per_day.html">Which Day of the Week is Deadliest?</a></li>
<li><a href="fatalities_per_time.html">Which Time of Day is the Deadliest?</a></li>
<li><a href="fatalities_trucks.html">How Many Trucks are in Fatal Crashes</a></li>
<li><a href="fatalities_speed_zones.html">Which Speed Zones are the Deadliest?</a></li>
<li><a href="fatalities_gender.html">Does Your Gender Increase the Risk of Dying?</a></li>
<li><a href="fatalities_age.html">Does Your Age Have Anything to do With Death-rates?</a></li>
<li><a href="fatalities_user.html">Fatality Data</a></li>
</ul>'''

soup = BeautifulSoup(link,"lxml")
tags = soup.select("ul li a")
items = [tag.attrs['href'] for tag in tags]
print(items)

输出中

['fatalities_per_year.html', 'fatalities_per_state.html', 'fatalities_per_day.html', 'fatalities_per_time.html', 'fatalities_trucks.html', 'fatalities_speed_zones.html', 'fatalities_gender.html', 'fatalities_age.html', 'fatalities_user.html']

答案 1 :(得分:0)

heading = "<h1>Road Fatalities in Australia</h1>"
contents1 = "<p>On this site you will find road fatality statistical data.</p>"
link = ['<a href="fatalities_per_year.html">A Look at Death Rates Over the Years</a>',
'<a href="fatalities_per_state.html">Which State has the Highest Fatality Rate?</a>',
'<a href="fatalities_per_day.html">Which Day of the Week is Deadliest?</a>',
'<a href="fatalities_per_time.html">Which Time of Day is the Deadliest?</a>',
'<a href="fatalities_trucks.html">How Many Trucks are in Fatal Crashes</a>',
'<a href="fatalities_speed_zones.html">Which Speed Zones are the Deadliest?</a>',
'<a href="fatalities_gender.html">Does Your Gender Increase the Risk of Dying?</a>',
'<a href="fatalities_age.html">Does Your Age Have Anything to do With Death-rates?</a>',
'<a href="fatalities_user.html">Fatality Data</a>']
with open("this.html", "w") as myfile:
    myfile.write(heading)
    myfile.write(contents1)
    for l in link:
        myfile.write(l)

输出

<h1>Road Fatalities in Australia</h1><p>On this site you will find road fatality statistical data.</p><a href="fatalities_per_year.html">A Look at Death Rates Over the Years</a><a href="fatalities_per_state.html">Which State has the Highest Fatality Rate?</a><a href="fatalities_per_day.html">Which Day of the Week is Deadliest?</a><a href="fatalities_per_time.html">Which Time of Day is the Deadliest?</a><a href="fatalities_trucks.html">How Many Trucks are in Fatal Crashes</a><a href="fatalities_speed_zones.html">Which Speed Zones are the Deadliest?</a><a href="fatalities_gender.html">Does Your Gender Increase the Risk of Dying?</a><a href="fatalities_age.html">Does Your Age Have Anything to do With Death-rates?</a><a href="fatalities_user.html">Fatality Data</a>

答案 2 :(得分:0)

您获得的错误positional argument follows keyword argument是由于您将参数传递给page.format()函数的方式。

在您的第一个示例中,link参数是由逗号分隔的一串字符串。但只有第一行:

link = '<a href="fatalities_per_year.html">A Look at Death Rates Over the Years</a>'

被识别为名为link的关键字参数,其余行被视为位置参数,没有为其分配关键字。这是Python中的违规,位置(非命名参数)只能在关键字(命名)参数之前使用,因此是一个错误。

在第二个示例中,您尝试将多行字符串作为link参数传递,但您使用单引号执行此操作。要在Python中使用多行字符串,必须将其括在三引号中

some_string = """line 1
line 2"""

最容易解决的问题是:

out = open("index.html", "w")

out.write(page.format(
heading = "<h1>Road Fatalities in Australia</h1>", 
contents1 = "<p>On this site you will find road fatality statistical data.</p>", 
contents2 = "<p>...</p>", 
contents3 = "<p>...</p>", 
link = '''<ul>
    <li><a href="fatalities_per_year.html">A Look at Death Rates Over the Years</a></li>
    <li><a href="fatalities_per_state.html">Which State has the Highest Fatality Rate?</a></li>
    <li><a href="fatalities_per_day.html">Which Day of the Week is Deadliest?</a></li>
    <li><a href="fatalities_per_time.html">Which Time of Day is the Deadliest?</a></li>
    <li><a href="fatalities_trucks.html">How Many Trucks are in Fatal Crashes</a></li>
    <li><a href="fatalities_speed_zones.html">Which Speed Zones are the Deadliest?</a></li>
    <li><a href="fatalities_gender.html">Does Your Gender Increase the Risk of Dying?</a></li>
    <li><a href="fatalities_age.html">Does Your Age Have Anything to do With Death-rates?</a></li>
    <li><a href="fatalities_user.html">Fatality Data</a></li>
</ul>'''))
out.close()

哪会创造:

<h1>Road Fatalities in Australia</h1>
<p>On this site you will find road fatality statistical data.</p>
<p>...</p>
<p>...</p>
<ul>
    <li><a href="fatalities_per_year.html">A Look at Death Rates Over the Years</a></li>
    <li><a href="fatalities_per_state.html">Which State has the Highest Fatality Rate?</a></li>
    <li><a href="fatalities_per_day.html">Which Day of the Week is Deadliest?</a></li>
    <li><a href="fatalities_per_time.html">Which Time of Day is the Deadliest?</a></li>
    <li><a href="fatalities_trucks.html">How Many Trucks are in Fatal Crashes</a></li>
    <li><a href="fatalities_speed_zones.html">Which Speed Zones are the Deadliest?</a></li>
    <li><a href="fatalities_gender.html">Does Your Gender Increase the Risk of Dying?</a></li>
    <li><a href="fatalities_age.html">Does Your Age Have Anything to do With Death-rates?</a></li>
    <li><a href="fatalities_user.html">Fatality Data</a></li>
</ul>

鉴于

page = """{heading}
{contents1}
{contents2}
{contents3}
{link}"""