如何从 HTML 代码中正确提取 URL?
How to properly extract URLs from HTML code?
我已将网站的 HTML 代码保存在计算机上的 .txt
文件中。我想使用以下代码从此文本文件中提取所有 URLs:
def get_net_target(page):
start_link=page.find("href=")
start_quote=page.find('"',start_link)
end_quote=page.find('"',start_quote+1)
url=page[start_quote+1:end_quote]
return url
my_file = open("test12.txt")
page = my_file.read()
print(get_net_target(page))
但是,该脚本只打印第一个 URL,而不是所有其他链接。这是为什么?
您需要实现一个循环来遍历所有 URLs。
print(get_net_target(page))
只打印在 page
中找到的第一个 URL,所以你需要一次又一次地调用这个函数,每次用子字符串替换 page
page[end_quote+1:]
直到找不到更多 URL。
为了让您开始,next_index
将存储最后一个结束 URL 位置,然后循环将检索以下 URLs:
next_index = 0 # the next page position from which the URL search starts
def get_net_target(page):
global next_index
start_link=page.find("href=")
if start_link == -1: # no more URL
return ""
start_quote=page.find('"',start_link)
end_quote=page.find('"',start_quote+1)
next_index=end_quote
url=page[start_quote+1:end_quote]
end_quote=5
return url
my_file = open("test12.txt")
page = my_file.read()
while True:
url = get_net_target(page)
if url == "": # no more URL
break
print(url)
page = page[next_index:] # continue with the page
还要小心,因为您只检索包含在 "
中的链接,但它们可以包含在 '
中,甚至什么都不包含...
我已将网站的 HTML 代码保存在计算机上的 .txt
文件中。我想使用以下代码从此文本文件中提取所有 URLs:
def get_net_target(page):
start_link=page.find("href=")
start_quote=page.find('"',start_link)
end_quote=page.find('"',start_quote+1)
url=page[start_quote+1:end_quote]
return url
my_file = open("test12.txt")
page = my_file.read()
print(get_net_target(page))
但是,该脚本只打印第一个 URL,而不是所有其他链接。这是为什么?
您需要实现一个循环来遍历所有 URLs。
print(get_net_target(page))
只打印在 page
中找到的第一个 URL,所以你需要一次又一次地调用这个函数,每次用子字符串替换 page
page[end_quote+1:]
直到找不到更多 URL。
为了让您开始,next_index
将存储最后一个结束 URL 位置,然后循环将检索以下 URLs:
next_index = 0 # the next page position from which the URL search starts
def get_net_target(page):
global next_index
start_link=page.find("href=")
if start_link == -1: # no more URL
return ""
start_quote=page.find('"',start_link)
end_quote=page.find('"',start_quote+1)
next_index=end_quote
url=page[start_quote+1:end_quote]
end_quote=5
return url
my_file = open("test12.txt")
page = my_file.read()
while True:
url = get_net_target(page)
if url == "": # no more URL
break
print(url)
page = page[next_index:] # continue with the page
还要小心,因为您只检索包含在 "
中的链接,但它们可以包含在 '
中,甚至什么都不包含...