Products
96SEO 2025-04-28 15:23 145
站長在利用火車頭采集文章時,有時候采集的標(biāo)題,或組合的標(biāo)題,或AI生成的標(biāo)題太長,那么在處理長標(biāo)題時,我們可以僅僅通過用火車頭自帶的C#編寫一個函數(shù)腳本來縮短標(biāo)題就可以。常見的做法是限制標(biāo)題的長度,邏輯就是讀取標(biāo)題的標(biāo)點符號,來截取適當(dāng)?shù)拈L度。
需要注意的是,老版本的火車頭采集器的C#版本比較低,編寫腳本時注意兼容性。
以下是兩個示例代碼,具體不同看開頭的注釋:
示例一:
//火車頭標(biāo)題截取以逗號問號標(biāo)點符號等,如果第一個符號不夠8個字,就截取第二個符號之前
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)題截取以逗號問號等,如果第一個符號不夠8個字,就截取第一個符號之后第二個符號之前的
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)于火車頭腳本或插件方面的問題,請給我們留言或聯(lián)系客服!
Demand feedback