FakiNyan, перелогінтесь.
ну і?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Повідомлення користувача Павло Зібров
FakiNyan, перелогінтесь.
ну і?
Попросив знайомого, аби той розмістив у себе
Павло Зібров написав:а чо i==allUsers.length, якщо там умова i<allUsers.length?
Бо це - умова циклу. Коли вона не виконується (а саме, коли i==allUsers.length), цикл закінчується.
а, точно
Так, проблема в тому, що на момент виклику success цикл вже закінчився і значення i == allUsers.length.
Задавайте дві різні функції:▼Прихований текстАбо додайте психоделії
(для JavaScript це нормально)
▼Прихований текст
а чо i==allUsers.length, якщо там умова i<allUsers.length?
Для початку було б непогано, якби ви фреймворк назвали.
Parse
Добрий вечір. Маю код
for(var i = 0; i<allUsers.length; i++)
{
var queryCount = new Parse.Query(Parse.User);
queryCount
.greaterThanOrEqualTo(allUsers[i]["score"])
.notEqualTo("username",allUsers[i]["username"]);
queryCount.count({
success: function(count) {
if(allUsers[i]!==undefined){
allUsers[i]["rank"]=count;
allUsers.save();
}
if(i==allUsers.length-1)
{
response.success(allUsers);
}
},
error: function(error){
response.error(error);
}
});
}
Перед цим циклом я перевіряв довжину масива allUsers, і вона була вірною, в моєму випадку вона дорівнювала п'яти. Але середовище, в котрому виконується скрипт, матюкається на те, що response.success() або response.error() не було викликано.
Я думав, що проблема в асинхронності, тобто на момент першого виконання if(i==allUsers.length-1) наш цикл вже дійшов до кінця, але навіть в цьому випадку if має виконатись.
Які у вас думки? Чому response.success() може не виконуватись?
$(document).ready(function() { var $input = $('<input type="button" value="new button" style="position: fixed;z-index:2147483647;top:0;left:0;" />'); $input.appendTo($("body"));
робе файно
я от теж думав в цьому напрямку, але більше п'ятірки не підставляв
...читати, хоча й рашенскою, але автор iз Бiлорусi.
а корні в нього німецькі? мені то шо з того? я ж українець!
Ідентифікатор має засновуватись на самому зображенні. Це потрібно для того, аби видаляти картинки, що повторюються. При цьому картинки можуть бути однаковими, але мати різні розміри, треба це теж враховувати.
Що порадите?
Ну, написав свого indexOf'а і наче працює, зтягнув 900+ посилань, зара буду завантажувати 900+ картинок
Та я вже по хорткору написав те, про що відразу подумав
$(document).ready(function() {
var $input = $('<input type="button" value="new button"/>');
$input.insertBefore($("body"));
$input.click(function(){
var added=0;
var str = "";
var intervalFunc = setInterval(function(){
var $images = $(".pinImg");
var isEnd=0;
var lastAdded=0;
console.log($images.length);
$images.each(function(){
var s = ($(this).attr("src"));
lastAdded=added;
if(!str.indexOf(s) > -1){
str+=(s+"\n");
added++;
}
if(lastAdded==added)
{
isEnd++;
if(isEnd==3)
{
clearInterval(intervalFunc);
}
}
else
{
lastAdded=added;
}
});
$("html, body").animate({ scrollTop: $(document).height()-$(window).height() });
console.log("added "+added);
}, 1500);
var $div = $("<div>"+str+"</div>");
$div.appendTo($("body"));
});
});
Є лишень одна біда - воно не зупиняється. Виглядає так, наче indexOf не працює.
z-index=-1
var $input = $('<input type="button" value="new button" style="position: fixed; z-index: -1;"/>');
не працює
Привіт. Є сторінка https://www.pinterest.com/Monokumagirl/anime-girls/
а на ній купа картинок. Ви можете бачити лише якусь частину усіх картинок, це видно по скролбару.
Якщо ми скролимо вниз, то підвантажуються ще декілька картинок, і так до кінця.
Я б хтів завантажити усі ці картинки, і для цього спробував метод, що використовує API цього сайта, але він повертає лише перші 50 картинок, а мені потрібні всі. Тому я вирішив написати Userscript, котрий би показував мені посилання на усі картинки, що містяться на сторінці.
Ідея була така - пишу скрипт, от такий
$(document).ready(function() {
var $input = $('<input type="button" value="new button"/>');
$input.appendTo($("body"));
$input.click(function(){
var $images = $(".pinImg");
console.log($images.length);
var str = "";
$images.each(function(){
str+=($(this).attr("src"))+"\n";
});
var $div = $("<div>"+str+"</div>");
$div.appendTo($("body"));
});
});
Далі я прокручую сторінку до самого низу, аби завантажились усі картинки, після чого натискаю на кнопку, котра активує функцію, що знаходить усі посилання на сторінці і показує їх.
Але воно не працює! Кожного разу показується лише якась частина посилань, від 30 до 40, хоча їх там має бути біля тисячі.
Чому це відбувається? Як завантажити усі картинки? Зараз в мене є лише одна ідея - прокручувати потрошки сторінку і натискати на кнопку, котра б додавала посилання на картинки, що видніються, в коллекцію, звісно, з перевіркою на унікальність. Але це буде якось довго і нудно, до того ж в мене ніяк не виходить розмістити кнопку відносно вікна браузера.
Привіт. Я хочу написати userscript, що додає на сторінку кнопку, і ця кнопка повинна завжди бути на одному місці, незалежно від того, скролю я сторінку, чи ні.
$(document).ready(function() {
var $input = $('<input type="button" value="new button" style="position: fixed;" />');
$input.insertBefore($("body"));
});
Після того, як я додав inline style - кнопка просто зникла, хоча вона відображається в інспекторі елементів
І якщо навести мишкою на цей елемент, то його контур відображається в вірному місці
Чому ж кнопка не видніється?
ви розумієте що таке wget ? яке його призначення?
А ще тому що не читав.
Ну я перевірив, і дійсно, wget завантажив все вірно. Але чого тоді мій сі шарп не знайшов тої картинки? Одже є якась різниця в запиті wget і WebClient, очевидно.
Але то все не має вже сенсу, адже я можу робити API запит і отримувати JSON з усіма даними
А чому ви не можете зробити те, що вам кажуть?
--no-check-certificate
RTFM так би мовити
тому що ліньки
Щойно завантажив все wget’ом. wget -E -H -k -K -p https://www.pinterest.com/pin/467952217508186367/ Тож не перевіряє.
а в мене якась помилка вилізла
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc
--2015-09-07 23:07:16-- https://www.pinterest.com/pin/467952217508186367/
Визначення ?мен? www.pinterest.com... 95.100.72.170
Connecting to www.pinterest.com|95.100.72.170|:443... п?д'єднано.
ERROR: cannot verify www.pinterest.com's certificate, issued by `/C=NL/L=Amsterdam/O=Verizon Enterpr
ise Solutions/OU=Cybertrust/CN=Verizon Akamai SureServer CA G14-SHA2':
Unable to locally verify the issuer's authority.
To connect to www.pinterest.com insecurely, use `--no-check-certificate'.
Не можу встановити SSL-з'єднання.
Тільки що надибав, що в них є API. І от таке посилання повертає жисон, котрий містить посилання на картинки. Треба тільки замінити 237x та 736x, аби картинки були в кращій якості
https://api.pinterest.com/v3/pidgets/bo … irls/pins/
Добридень. Захтів зробити собі тематичну групу в одній соціальній мережі. І цю групу потрібно наповнювати картинками. На pinterest є купа дошок на потрібну мені тематику, але просто скачати всі картинки звідти неможливо без використання сторонніх засобів. (звісно, можна це все вручну зробити, але ж я програміст)
Поки що я спробував написати програмку, котра завантажує html-код сторінки, парсить її для того, щоб отримати посилання на картинку, але це, чомусь, не спрацювало. Завантажуванна інфа взагалі не містить посилання саме на потрібну картинку.
От нехай буде ця дошка, наприклад
https://www.pinterest.com/Monokumagirl/anime-girls/
А ось код
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Text.RegularExpressions;
using System.Net;
namespace imageDownloaderConsole
{
class Program
{
public Program()
{
List<string> pins = ParseString(new WebClient().DownloadString("https://www.pinterest.com/Monokumagirl/anime-girls/")); //завантажуємо сторінку дошки і передаємо результат в метод, котрий дістане посилання на сторінку з картинкою
foreach(string pin in pins)
{
using (var client = new WebClient()) // тут я завантажую сторінку з картинкою
{
string str = client.DownloadString("https://www.pinterest.com" + pin);
Regex r = new Regex("<img src.+\"");
MatchCollection matches = r.Matches(str);
foreach (Match m in matches)
Console.WriteLine(m.Value); // а тут я просто виводжу усі картинки на сторінці, де має бути посилання на саму картинку
}
break;
}
Console.ReadLine();
}
static void Main(string[] args)
{
new Program();
}
List<string> ParseString(string str) // дістаємо посилання на сторінки з картинками
{
List<string> urls = new List<string>();
Regex r = new Regex("(/pin/\\d+)/(?=\")");
MatchCollection matches = r.Matches(str);
foreach(Match m in matches)
{
if (!urls.Contains(m.Value))
urls.Add(m.Value);
}
Console.WriteLine("count: " + urls.Count);
Console.WriteLine("first: " + urls.First());
return urls;
}
}
}
На картинці видно відносний шлях до сторінки з картинкою - /pin/467952217508186367/
тобто повне посилання виглядає от так https://www.pinterest.com/pin/467952217508186367/
Якщо перейти по цьому посиланню, то ми побачимо картинку, і от її url мені і потрібно дістати. Якщо проінспектувати елемент в браузері, то можна побачити, що тег і посилання на цю картинку мають такий вигляд
<img src="https://s-media-cache-ak0.pinimg.com/736x/b3/49/f1/b349f1987f3f8997cb1b1a15d9f57094.jpg" class="pinImage" data-load-state="pending" alt="Reminds me of KoukovKaga from Golden Time. Sweet anime, 8/10 hands down -RV: ">
Але на скріншоті видно, що програма не знайшла саме такого посилання.
Я от припускаю, що той сайт перевіряє, чи з браузера зайшли на нього, чи не з браузера, і на основі цьої інфи видає відповідні дані.
А ви як гадаєте?