我正在尝试获取今日报纸的金融时报 URL 列表。我通过从 FT.com 获取源代码,然后使用分隔符解析 html 源代码来完成此操作,现在我尝试将每个 url 保存为逗号分隔值文件(.txt 扩展名)。
我已经能够解析html源代码。但我的问题在于将网址保存为 csv 文件(或网址列表,以段落分隔)。
这是我的小程序:
on run
set query_url to "http://www.ft.com/uk-edition"
set query_url_source to do shell script "/usr/bin/curl " & quoted form of query_url
set p to query_url_source
set ex to extractBetweenLong(p, "><a href=\"/cms/s", ".html")
return ex
end run
--delimiters subroutine:
to extractBetweenLong(SearchText, startText, endText)
set tid to AppleScript's text item delimiters -- save them for later.
set AppleScript's text item delimiters to startText -- find the first one.
set liste to text items of SearchText
set AppleScript's text item delimiters to endText -- find the end one.
set extracts to {}
repeat with subText in liste
if subText contains endText then
copy text item 1 of subText to end of extracts
end if
end repeat
set AppleScript's text item delimiters to tid -- back to original values.
return extracts
end extractBetweenLong
我的输出如下:
{"^!DOCTYPE html ... subs5", "/0/0130d092-c473-11e1-9c1e-00144feabdc0", "/0/cb8a70a0-c469-11e1-a98c-00144feabdc0", ..., "/0/ 02eaa328-c468-11e1-9c1e-00144feabdc0",}
我的第一个问题是为什么第一个字符串 (^!DOCTYPE html...) 存在?我的定界符子例程一定有问题,因为我的第一个“startText”定界符不应包含“DOCTYPE ... subs5”(subs5 HTML 选项卡以 .html 结尾),因此这可能表明我的子例程星号
第二如何将每个 URL 保存为列表,用逗号或换行符分隔?我首先想在每个 URL 之前加上字符串:“www.ft.com/cms/s”,但我相信我自己可以弄清楚。
感谢您提前提供帮助。