Я пытаюсь очистить сайт Taobao с помощью Scrapy-sharp. Я смог войти в систему (заполнив имя пользователя и пароль), но затем он перенаправляет на страницу, где есть «капча-слайдер», как показано на рисунке ниже.
Я знаю, что мы можем решить эту проблему, используя библиотеку кукловодов. Но есть и другие проблемы, с которыми я сталкиваюсь с кукловодом (см. https://stackoverflow.com/posts/comments/103786166?noredirect=1)
Мой вопрос таков: есть ли способ решить капчу-слайдер с помощью Scrapy-sharp и HtmlAgility pack? Как мы можем получить ограничивающий прямоугольник ползунка? а затем вызвать события мыши в Scrapy-sharp?
Мой код для очистки выглядит следующим образом:
ScrapingBrowser Browser = new ScrapingBrowser();
Browser.AllowAutoRedirect = true;
// Browser has settings you can access in setup
Browser.AllowMetaRedirect = true;
WebPage PageResult = Browser.NavigateToPage(new Uri("https://login.m.taobao.com/login_oversea.htm?loginFrom=wap_tmall&assets_js=mui%2Ffeloader%2F4.0.22%2Ffeloader-min.js,mui%2Ftmapp-standalone%2F4.0.3%2Fseed.js,mui%2Ftmapp-standalone%2F4.0.3%2Flogin-download.js&assets_css=3.0.8%2Fmobile%2Ftmallh5.css&redirectURL=https%3A%2F%2Fwww.tmall.com%2F"));
PageWebForm form = PageResult.FindFormById("loginForm");
form["TPL_username"] = "<<someusername>>";
form["TPL_password"] = "********";
form.Method = HttpVerb.Post;
WebPage resultsPage = form.Submit();
PageWebForm searchForm = resultsPage.FindForm("searchTop");
searchForm.Method = HttpVerb.Post;
searchForm["q"] = "nike";
//subsequent pages
//var postResults = searchForm.Submit(new Uri(@"https://list.tmall.com/m/search_items.htm?page_size=20&page_no=3&q=Nike&type=p&tmhkh5=&spm=a220m.6910245.a2227oh.d100&from=mallfp..m_1_searchbutton&searchType=&closedKey="));
//1st page//
var postResults= searchForm.Submit(new Uri(@"https://list.tmall.com/search_product.htm?q=nike&type=p&tmhkh5=&spm=a220m.8599659.a2227oh.d100&from=mallfp..m_1_searchbutton&searchType=default&closedKey="));
//PageWebForm verForm = resultsPage.FindFormById("verifyForm");
//verForm.Method = HttpVerb.Post;
//verForm.Action = "https://passport.taobao.com/iv/h5/h_5_verify_modes.htm";
//WebPage postResults = verForm.Submit();
//var divs = JsonConvert.DeserializeObject<RootObject>(postResults.Content);
var divs = postResults.Html.SelectNodes("//div[@class='product ']")
Но когда форма отправлена, она перенаправляется на страницу с ползунком капчи. Любые советы / советы о том, как обойти эту проблему?