Страничка есть, на которой есть капча - [Ссылки могут видеть только зарегистрированные пользователи. ]
Суть - отправить в текстовом поле ссылку + слова что написаны на капче. В запросе капча назначена как "rep= цифры".
На данный момент вот что у меня есть:
Код:
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.IO;
using System.Threading;
namespace AutoAddBlogs
{
public partial class Form1 : Form
{
readonly ParallelOptions o = new ParallelOptions();
private Thread t;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
t = new Thread(s_w);
t.Start();
}
string send_POST(string url, string post)
{
string Response_POST = "", StrNewValue;
try
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.Proxy = new WebProxy("127.0.0.1", 8888);
req.ContentType = "application/x-www-form-urlencoded";
StrNewValue = post;
req.ContentLength = StrNewValue.Length;
StreamWriter Soup = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
Soup.Write(StrNewValue);
Soup.Close();
StreamReader stin3 = new StreamReader(req.GetResponse().GetResponseStream());
Response_POST = stin3.ReadToEnd();
stin3.Close();
}
catch { }
return Response_POST;
}
private void s_w()
{
o.MaxDegreeOfParallelism = Convert.ToInt32(numericUpDown1.Value);
Parallel.ForEach(GetLine(), o,
line => send_POST("http://blogs.yandex.ua/add-result.xml?private=no&url=" + line, ""));
}
IEnumerable<string> GetLine()
{
string[] line = null;
if (RichTextBox1.InvokeRequired)
{
RichTextBox1.Invoke(
new Action(() =>
{
line = RichTextBox1.Text.Split('\n');
}
));
}
else
line = RichTextBox1.Text.Split('\n');
return line;
}
}
}
Отправка запроса со ссылками из РичТекстБокса, в несколько потоков. Как действовать дальше? Если выгружать капчу то надо парсить сессию или что? и как это сделать?
И можно ли отправлять данную капчу на антигейт? По исходнику от самого Антигейта, я так понял что можно.