- Регистрация
- 18.08.2017
- Сообщения
- 402
- Благодарностей
- 29
- Баллы
- 28
Мотаю кнопкой end в конец страницы, а страница не до гружается. Как так? Чем еще можно вызвать до загрузку страницы?
а скроллится или стоит на месте?Мотаю кнопкой end в конец страницы, а страница не до гружается. Как так? Чем еще можно вызвать до загрузку страницы?
Да. Но она почему-то до половины скролится вроде как же до конца должна?а скроллится или стоит на месте?
"Новичок" - это не про Нашего ЛёхуТам разберется даже новичок.
Да че там делать, получил GET, сделал регулярку, записал значение в список."Новичок" - это не про Нашего Лёху
Да я мучаю тот китайский сайт, и в этот раз я так и сделал навигейты. На запросах не пишу просто по тому что не умею. Но там полюбе приходится скролить. Вообщем я решил проблему со скролингам. Сам немного Тупонул. Но откуда не возьмись нарисовалась новая. Значит я парсю все хорошо, и тут эта гадость перекидывает меня на другую страницу не понимаю от чего. Но думаю что проверка на какой я страницы поможет. (Переделанная проверка текста на страницы). Надеюсь я правильно мыслью думаю получитсяЛёха, если ты опять мучаешь тот сайт с китайскими купонами, то там не обязательно скроллить, проще делать постраничный навигейт =>
https://сайт_с_китайскими_купонами/page/1/
https://сайт_с_китайскими_купонами/page/2/
...
https://сайт_с_китайскими_купонами/page/n/
И вообще, делай на запросах!
Я сделал гет. В тестер написал то что хотел чтобы спарсилось. Не увидел этого закрыл тестер. И удалил гет. Ладно попробую сейчас ещё раз на гетах написать. Мне просто геморрой копаться в этом коде.Да че там делать, получил GET, сделал регулярку, записал значение в список.
А по другому никак, приходиться копаться. Поставь программу notepad++, потом зайди в ВИД и нажми галку ПЕРЕНОС СТРОК. Так удобнее работать с HTML кодом. Пользуйся вкладкой Поиск-Найти, что бы найти нужный элемент и посмотреть что его окружает для составления регулярки.Я сделал гет. В тестер написал то что хотел чтобы спарсилось. Не увидел этого закрыл тестер. И удалил гет. Ладно попробую сейчас ещё раз на гетах написать. Мне просто геморрой копаться в этом коде.
Ну это я знаю. Спасибо.А по другому никак, приходиться копаться. Поставь программу notepad++, потом зайди в ВИД и нажми галку ПЕРЕНОС СТРОК. Так удобнее работать с HTML кодом. Пользуйся вкладкой Поиск-Найти, что бы найти нужный элемент и посмотреть что его окружает для составления регулярки.
IZennoTable table = project.Tables["Table"]; // талица, в которую складывать данные
int count = 10; // количество страниц, с которых парсить
string url = "https://сайт_с_китайскими_купонами.com"; // URL сайта
string protocol = string.Empty;
string proxy = string.Empty;
string userAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0";
string cookies = string.Empty;
string language = "en-US";
string referer = url;
string host = new Uri(url).Host;
string pageUrl = string.Empty;
string pageRef = string.Empty;
string pattern1= @"<article id=""post-[\w\W]*?<!-- #post-## -->";
string pattern2 = @"(Coupon \d+ \(.*?\)|Old coupons):";
string pattern3 = @"(?<=""(font-size:large|color:#8e8e8e);"">).*?(?=<)";
string pattern4 = @"(?<=""entry-title"">.*>).*?(?=</a>)";
for (int i = 0; i < count; i++) {
if (i >= 1)
pageUrl = "/page/" + (i + 1).ToString() + "/";
if (i > 1)
pageRef = "/page/" + i.ToString() + "/";
// GET запрос
string resultRequest = ZennoPoster.HttpGet(
url + pageUrl,
protocol + proxy,
"UTF-8",
InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
30000,
cookies,
userAgent,
true,
5,
new[] {
"Host: " + host,
"Accept: */*",
"Accept-Language: " + language,
"Accept-Encoding: gzip, deflate, br",
"DNT: 1",
"Connection: keep-alive",
"Referer: " + referer + pageRef
}
);
// Сообщение в лог
project.SendInfoToLog("Парсим данные со страницы " + url + pageUrl, true);
// Парсим данные со страницы
MatchCollection mCol = Regex.Matches(resultRequest, pattern1);
for (int j = 0; j < mCol.Count; j++) {
string str = string.Empty;
string str2 = string.Empty;
MatchCollection mCol2 = Regex.Matches(mCol[j].Value, pattern2);
MatchCollection mCol3 = Regex.Matches(mCol[j].Value, pattern3);
for (int l = 0; l < mCol2.Count; l++)
str += mCol2[l].Value.Trim() + " " + mCol3[l].Value.Trim() + "\r\n";
str = str.Trim();
if (str == string.Empty) continue;
str2 = Regex.Match(mCol[j].Value, pattern4).Value.Replace(" ", " ").Trim();
// Добавляем данные в таблицу
lock (SyncObjects.TableSyncer)
table.AddRow(str2 + ";" + str);
}
}