我已将网站的HTML代码保存在计算机上的.txt
文件中。我想使用以下代码从此文本文件中提取所有URL:
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,但不打印所有其他链接。这是为什么?
答案 0 :(得分:2)
您需要实现一个循环来浏览所有网址。
print(get_net_target(page))
仅打印page
中找到的第一个网址,因此您需要一次又一次地调用此函数,每次都用子串page
替换page[end_quote+1:]
,直到找不到更多的网址。
为了帮助您入门,next_index
将存储最后的结束网址,然后循环将检索以下网址:
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
另外要小心,因为您只检索"
内部的链接,但它们可以被'
括起来,甚至没有......