Google Trend палит что я бот)
а ты пробовал selenium?
Я пробовал Tor, но т.к. опыта использования у меня не особо много, то у меня получилось только работать в браузере анонимно. Программа все равно работает с реального ip. Буду признателен если объясните как сделать так, чтобы действие проги распространялось на все приложения.
С помощью AdvOR можно любой процесс в системе запустить через tor. погугли
почитай что такое selenium. Это не тор и не анонимайзер
[23:38:10] [notice] All new connections will appear as originating from a new IP.
Но все равно если я из хрома гуглю myIp, то получаю старый адрес
Прикольная штука...скачал dll-ки...сейчас попробую в деле. Спасибо за совет
у меня после этого myIP через хром рандомные айпишники показывает
[00:30:04] [warn] Restricted process MovieAnalyser.vshost.exe [clr.dll] (PID: 4892) - attempt to create a non-TCP socket ( AF: 23 , SOCK_DGRAM , IPPROTO_IP ) - we return WSAEAFNOSUPPORT .
[00:30:04] [warn] Restricted process MovieAnalyser.vshost.exe [clr.dll] (PID: 4892) - attempt to create a non-TCP socket ( AF_INET , SOCK_DGRAM , IPPROTO_IP ) - we return WSAESOCKTNOSUPPORT .
Спасибо большущее за совет...скачал так 60 файлов, но потом гугл меня снова забанил и в браузере. В общем это лучше, чем ничего.
Если кто предложит более нормальное решение - буду благодарен.
Оставить комментарий
gala_78
Всем привет.Нужна помощь по следующему вопросу:
Набираю базу данных для одной интересной исследовательской работы касательно индустрии фильмов... Все получается неплохо, а вот Google Trends (у которого мне нужно получить search volume index) после пары запросов как-то палит, что я бот и выдает:
You have reached your quota limit. Please try again later
Причем после этого он, видимо, блокирует ip на сутки и смена пользователя нифига не помогает... Но если эту ссылку отправить в браузер, то он ее успешно переваривает и все качает (мистика, ничего не скажешь). Прикинуться браузером тоже не особо помогает...
Может кто подскажет что делать.
Мысли такие:
1) Маскировать свой ip и вызывать запрос каждый раз с нового (буду рад если кто подскажет как это реализовать).
2) Вешать таймаут и запросы отправлять не чаще чем раз в n секунд (так уже делал...достаточно долго ждал. Но эта зараза очень быстро меня раскусила)))
3)Самый хардкорный: запоминать url-ы, а потом файлики качать ручками (буду признателен если кто подскажет как автоматизировать этот процесс) - не самый лучший вариант т.к. придется скачать порядка 4000 файлов вручную...Но на безрыбье....
Код (на C#) прилагается:
var username = СЮДА ВВОДИМ СВОЙ ЛОГИН;
var password = СЮДА ПАРОЛЬ;
client.Headers.Add("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12");
client.Headers.Add("Accept", "*/*");
client.Headers.Add("Accept-Language", "en-gb,en;q=0.5");
client.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
var response = client.DownloadString(string.Format("http://www.google.com/accounts/ClientLogin?accountType=GOOGLE&Email={0}&Passwd={1}&service=trendspro&source=test-test-v1", username, password));
// The SID is the first line in the response
// The Auth line
var auth = response.Split('\n')[2];
client.Headers.Add("Authorization", "GoogleLogin " + auth);
DateTime searchDateStart = дата выпуска фильма минус месяц
var url =
string.Format(
"http://www.google.com/trends/trendsReport?hl=en-US&cat=0-3&q=Finland, {0}&date={1}/{2} 3m&cmpt=q&content=1&export=1",
MovieName, searchDateStart.Month, searchDateStart.Year);
byte[] csv = client.DownloadData(url);
var file = Encoding.UTF8.GetString(csv);
Всем большое спасибо за конструктив и добра!)