Как очистить данные - PullRequest
       3

Как очистить данные

0 голосов
/ 11 февраля 2012

Я пытаюсь очистить данные с этого URL: http://icecat.biz/en/p/Coby/DP102/desc.htm

Я хочу очистить таблицу specs от этого URL.

Но я проверил исходный код URL, что таблица спецификаций не отображается, потому что я думаю, что таблица загружается с использованием Ajax.

Как я могу получить эту таблицу. Что нужно сделать?

Я использовал следующий код:

string Strproducturl = "http://icecat.biz/en/p/Coby/DP102/desc.htm";
System.Net.ServicePointManager.Expect100Continue = false;
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(Strproducturl);
httpWebRequest.KeepAlive = true;
ASCIIEncoding encoding = new ASCIIEncoding();

HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
Stream responseStream = httpWebResponse.GetResponseStream();
StreamReader streamReader = new StreamReader(responseStream);
string response = streamReader.ReadToEnd();

Ответы [ 3 ]

1 голос
/ 11 февраля 2012

Как упомянул IanNorton, вам нужно будет запросить URL-адрес, который Icecat использует для загрузки спецификаций с использованием AJAX.Для приведенной вами ссылки-примера URL-адрес сведений о спецификации, который вам нужно будет запросить, будет:

http://icecat.biz/index.cgi?ajax=productPage;product_id=1091664;language=en;request=feature

Затем вы можете пройти через HTML-ответ, чтобы получить сведения о спецификации.вам требуется.

Вы упомянули в своем комментарии, что процесс очистки автоматизирован.URL-адрес спецификации в базовом формате, вам просто нужен идентификатор продукта.Однако, если у вас нет идентификаторов, а всего лишь несколько URL-адресов, как в примере из исходного вопроса, вам нужно получить идентификатор продукта по URL-адресу, который у вас есть.

Например,Пример URL, который вы перенаправили на другой URL:

http://icecat.biz/p/coby/dp102/digital-photo-frames-0716829961025-dp-102-digital-photo-frame-1091664.html

Этот URL-адрес содержит идентификатор продукта, расположенный в конце.

Вы можете сделать HttpWebRequestна исходный URL-адрес, остановитесь, прежде чем он выполнит перенаправление, и перехватите URL-адрес перенаправления:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://icecat.biz/en/p/Coby/DP102/desc.htm");
request.AllowAutoRedirect = false;
request.KeepAlive = true;

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

if(response.StatusCode == HttpStatusCode.Redirect){

    string redirectUrl = response.GetResponseHeader("Location");

}

Как только вы получите переменную redirectUrl, вы можете использовать Regex для получения идентификатора, а затем выполнить другойHttpWebRequest к подробному URL спецификации.

0 голосов
/ 15 апреля 2015

Я знаю, что это очень старый, но вы могли бы проще получить XML из

https://openIcecat -xml: freeaccess@data.icecat.biz/export/freexml.int/EN/1091664.xml

Вы также получите все изображения и описания: -)

0 голосов
/ 11 февраля 2012

Я бы посоветовал вам использовать библиотеку типа HtmlAgilityPack для выбора различных элементов из HTML-документа.

Я быстро взглянул на ссылку и заметил, что данные действительно загруженыиспользуя дополнительный запрос ajax.Вы можете использовать следующий URL для получения данных ajax

http://icecat.biz/index.cgi?ajax=productPage;product_id=1091664;language=en;request=feature

Использование HtmlAgilityPack для анализа этих данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...