0

下面的代码不适用于外来词,但适用于英文单词。

let int=1244764800
let start=86400+$int 
let l=86400*7
let end=$int-$l

for (( k = $start ; k > $end ; k=k-3600 )) do
for (( j = 1 ; j < 11 ; j++ )) do
let mintime=$k-3600;
let maxtime=$k
searchwords="سلام"

#echo $maxtime
curl "http://otter.topsy.com/search.json?q="${searchwords}"&page="$j"&perpage=100&mintime="${mintime}"&maxtime="${maxtime}"&apikey=FAF7F2D0D8A143978CB7762CE35FCF99"
done
done

这会产生以下结果:

curl: (7) couldn't connect to host

curl: (7) couldn't connect to host

我重申这个脚本与英语单词完美配合,但我需要用外语来运行它,所以我将不胜感激任何帮助/指导!谢谢 :)

4

2 回答 2

2

我猜你需要urlencode任何非ASCII字符。尝试使用curl --data-urlencode,而不仅仅是curl.

如果只是在 URL 字符串前添加不起作用,请将参数移动到数据(继续阅读-dcurl并仍然使用--data-urlencode

这是一个工作示例:

curl -G --data-urlencode "q=سلام" -d page=1 -d mitime=1244764800 -d maxtime=1245764800 -d apikey=FAF7F2D0D8A143978CB7762CE35FCF99 "http://otter.topsy.com/search.json"
于 2013-01-23T06:15:55.840 回答
0

您必须对搜索词的字符进行 url 转义。

您可以尝试使用--data-urlencodecurl 的参数。

此链接中有一篇很好的文章,介绍了如何使用 perl 或简单的 bash 在 bash 中执行此操作。

于 2013-01-23T06:19:32.397 回答