- Регистрация
- 30.04.2023
- Сообщения
- 6
- Благодарностей
- 0
- Баллы
- 1
Мне нужно было написать сниппет, который бы проходился по ссылкам на темы с форума, которые хранятся в списке и собирал оттуда информацию об ее авторе. Получилось что то такое:
Но при запуске кубика с данным кодом в логах возникают ошибки:
Помогите, пожалуйста, понять в чем причина. XPath для поиска значений вроде верные указал, да и даже если бы и нет, насколько я понимаю, код все равно должен был выполниться, просто в случае неверных xpath ничего не нашел бы.
C#:
public class ScrapeAuthor
{
public void Execute()
{
List<string> threadURLs = new List<string>(Project.Variables["ThreadURL"].Values);
foreach (string threadUrl in threadURLs)
{
ZennoPoster.Navigate(threadUrl, true);
User author = new User
{
Nickname = ZennoPoster.HtmlGetElementByXpath("//a[contains(@class, 'username')]").InnerText,
Rank = ZennoPoster.HtmlGetElementByXpath("//div[contains(@class, 'userBanner')]/strong").InnerText,
PostCount = int.Parse(ZennoPoster.HtmlGetElementByXpath("//dl[contains(@class, 'pairs') and dt[text()='Сообщения']]/dd").InnerText),
Gender = ZennoPoster.HtmlGetElementByXpath("//dl[contains(@class, 'pairs') and dt[text()='Пол']]/dd").InnerText
};
SaveAuthorToFile(author);
}
}
public void SaveAuthorToFile(User author)
{
string authorInfo = $"Nickname: {author.Nickname}\n" +
$"Rank: {author.Rank}\n" +
$"PostCount: {author.PostCount}\n" +
$"Gender: {author.Gender}";
string fileName = $"author_info_{author.Nickname}.txt";
File.WriteAllText(fileName, authorInfo);
}
}
public class User
{
public string Nickname { get; set; }
public string Rank { get; set; }
public int PostCount { get; set; }
public string Gender { get; set; }
}
ScrapeAuthor scraper = new ScrapeAuthor();
scraper.Execute();
12:17:13 Компиляция кода Ошибка в действии "CS1513" "} expected". [Строка: 0; Cтолбец: 2]
12:17:13 Компиляция кода Ошибка в действии "CS1519" "Invalid token '(' in class, struct, or interface member declaration". [Строка: 46; Cтолбец: 16]
12:17:13 Компиляция кода Ошибка в действии "CS8124" "Tuple must contain at least two elements.". [Строка: 46; Cтолбец: 17]
12:17:13 Компиляция кода Ошибка в действии "CS1519" "Invalid token ';' in class, struct, or interface member declaration". [Строка: 46; Cтолбец: 18]
12:17:13 Компиляция кода Ошибка в действии "CS1022" "Type or namespace definition, or end-of-file expected". [Строка: 45; Cтолбец: 1]
12:17:13 Компиляция кода Ошибка в действии "CS1519" "Invalid token '(' in class, struct, or interface member declaration". [Строка: 46; Cтолбец: 16]
12:17:13 Компиляция кода Ошибка в действии "CS8124" "Tuple must contain at least two elements.". [Строка: 46; Cтолбец: 17]
12:17:13 Компиляция кода Ошибка в действии "CS1519" "Invalid token ';' in class, struct, or interface member declaration". [Строка: 46; Cтолбец: 18]
12:17:13 Компиляция кода Ошибка в действии "CS1022" "Type or namespace definition, or end-of-file expected". [Строка: 45; Cтолбец: 1]
Помогите, пожалуйста, понять в чем причина. XPath для поиска значений вроде верные указал, да и даже если бы и нет, насколько я понимаю, код все равно должен был выполниться, просто в случае неверных xpath ничего не нашел бы.