Products
96SEO 2025-04-28 15:23 165
站長(zhǎng)在利用火車頭采集文章時(shí),有時(shí)候采集的標(biāo)題,或組合的標(biāo)題,或AI生成的標(biāo)題太長(zhǎng),那么在處理長(zhǎng)標(biāo)題時(shí),我們可以僅僅通過(guò)用火車頭自帶的C#編寫一個(gè)函數(shù)腳本來(lái)縮短標(biāo)題就可以。常見(jiàn)的做法是限制標(biāo)題的長(zhǎng)度,邏輯就是讀取標(biāo)題的標(biāo)點(diǎn)符號(hào),來(lái)截取適當(dāng)?shù)拈L(zhǎng)度。
需要注意的是,老版本的火車頭采集器的C#版本比較低,編寫腳本時(shí)注意兼容性。
以下是兩個(gè)示例代碼,具體不同看開(kāi)頭的注釋:
示例一:
//火車頭標(biāo)題截取以逗號(hào)問(wèn)號(hào)標(biāo)點(diǎn)符號(hào)等,如果第一個(gè)符號(hào)不夠8個(gè)字,就截取第二個(gè)符號(hào)之前
using System;
using SpiderInterface;
class LocoyCode {
public string Run(string content,ResponseEntry response)
{
char[] delimiters = { ',', ',', '?', '?', '(', '(', ' ', ':', '「',':', '-', '_', '!', '!', '|', ' ' };
string output = GetFirstLongString(content,delimiters);
return string.IsNullOrEmpty(output) ? content : output;
}
public static string GetFirstLongString(string input, char[] delimiters)
{
string output = "";
int startIndex = 0;
bool firstDelimiter = true;
for (int i = 0; i < input.Length; i++)
{
if(Array.IndexOf(delimiters,input[i])!=-1)
{
if(i-startIndex>=8 || (!firstDelimiter && i-startIndex > 0))
{
output = input.Substring(0, i);
break;
}
firstDelimiter = false;
startIndex=i+1;
}
}
if(string.IsNullOrEmpty(output) && input.Length>=8){
output = input;
}
return output;
}
}
示例二:
//火車頭標(biāo)題截取以逗號(hào)問(wèn)號(hào)等,如果第一個(gè)符號(hào)不夠8個(gè)字,就截取第一個(gè)符號(hào)之后第二個(gè)符號(hào)之前的
using System;
using SpiderInterface;
class LocoyCode {
public string Run(string content,ResponseEntry response)
{
char[] delimiters = { ',', ',', '?', '?', '(', '(', ' ', ':', ':', '-', '「', '!', '!', ' ' };
string output = GetFirstLongString(content,delimiters);
return string.IsNullOrEmpty(output) ? content : output;
}
public static string GetFirstLongString(string input, char[] delimiters)
{
string output = "";
int startIndex = 0;
bool firstDelimiter = true;
for (int i = 0; i < input.Length; i++)
{
if(Array.IndexOf(delimiters,input[i])!=-1)
{
if(i-startIndex>=8 || !firstDelimiter)
{
output = input.Substring(startIndex, i - startIndex);
break;
}
firstDelimiter = false;
startIndex=i+1;
}
}
if(string.IsNullOrEmpty(output) && input.Length>=8){
output = input;
}
return output;
}
}
如果你需要更多關(guān)于火車頭腳本或插件方面的問(wèn)題,請(qǐng)給我們留言或聯(lián)系客服!
Demand feedback