2024-05-20 09:38:34 发布
网友
我想用bash命令行上的标准Hepburn system音译通用日语,包括汉字。在
我已经评估了几个选项,但是
所以我想解析http://nihongo.j-talk.com的输出 输出在分区输出换行或者分割输出在
如果纯粹使用Bash工具(curl/jq?)来实现这一点是徒劳的,我如何使用Python/beauthoulsoup来实现这个目标?在
很抱歉没有给出代码片段,我不知道如何将数据发布到网站,如果没有API,如何使用结果。在
看看http://nihongo.j-talk.com站点的源html,我猜到了API。 步骤如下:
1)通过wget向服务器发送一个日文字符串,并在索引.html. 2) 解析索引.html提取罗曼吉琴弦。在
下面是示例代码:
#!/bin/bash string="日本語は、主に日本で使われている言語である。日本では法規によって「公用語」として規定されているわけではないが、各種法令(裁判所法第74条、会社計算規則第57条、特許法施行規則第2条など)において日本語を用いることが定められるなど事実>上の公用語となっており、学校教育の「国語」でも教えられる。" uniqid="46a7e5f7e7c7d8a7d9636ecb077da485479b66bc" wget -N post-data "uniqid=$uiqid&Submit='Translate Now'&kanji_parts=standard&kanji=$string&converter=spaced&kana_output=romaji" http://nihongo.j-talk.com/ > /dev/null 2>&1 perl -e ' $file = "index.html"; open(FH, $file) or die "$file: $!\n"; while (<FH>) { if (/<div id=.spaced. class=.romaji.>(.+)/) { ($str = $1) =~ s/<.*?>//g; $str =~ s/\&\#(\d+);/&utfconv($1)/eg; print $str, "\n"; } } # utf16 to utf8 sub utfconv { $utf16 = shift; my $upper = ($utf16 >> 6) & 0b0001_1111 | 0b1100_0000; my $lower = $utf16 & 0b0011_1111 | 0b1000_0000; pack("C2", $upper, $lower); }'
一些评论: -我用Perl编写解析器只是因为我对它比较熟悉,但是您可以通过阅读来修改或转换成其他语言索引.html文件。 -uniqid字符串是我从网站的html源代码中选择的。如果不能很好地工作,请确保html源代码中嵌入了什么。在
希望这有帮助。在
看看http://nihongo.j-talk.com站点的源html,我猜到了API。
步骤如下:
1)通过wget向服务器发送一个日文字符串,并在索引.html.
2) 解析索引.html提取罗曼吉琴弦。在
下面是示例代码:
一些评论:
-我用Perl编写解析器只是因为我对它比较熟悉,但是您可以通过阅读来修改或转换成其他语言索引.html文件。
-uniqid字符串是我从网站的html源代码中选择的。如果不能很好地工作,请确保html源代码中嵌入了什么。在
希望这有帮助。在
相关问题 更多 >
编程相关推荐