Не удается получить исходный код встроенной прошивки ISSUU

Прежде всего то, что я хочу сделать, является законным (так как они позволяют вам скачать PDF). Я просто хотел сделать более быстрый и автоматический способ загрузки PDF.

Например: http://www.lasirena.es/article/&path=10_17&ID=782

Он имеет встроенный флэш-PDF, и когда я загружаю исходный код этой страницы, ссылка на PDF-файл: http://issuu.com/lasirena/docs/af_fulleto_setembre_andorra_sense_c?e=3360093/9079351

Не отображается, единственное, что у меня есть в исходном коде, это: 3360093/9079351 Я пытался найти способ создать из него ссылку в формате pdf, но нигде не могу найти имя "af_fulleto_setembre_andorra_sense_c"..,

Я сделал много таких автоматических загрузок, но это первый раз, когда я не могу собрать или получить ссылку в формате PDF и не могу найти способ, возможно ли это вообще?

Я пытался найти ссылки jpg, но безуспешно. В любом случае (JPG или PDF) хорошо...

PS: идентификатор документа не отображается в загруженном исходном коде.

Спасибо.

1 ответ

Решение

Я подумал, что это можно обойти, некоторые могут не считать это решением, но в моем случае все работает нормально, потому что это зависит от учетной записи издателя ISSUU. Само решение делает запрос к API ISSUU, связанный с той учетной записью издателя, которую я ищу.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.issuu.com/query?action=issuu.documents.list" +
                "&apiKey=Inser Your API Key" +
                "&format=json" +
                "&documentUsername=User of the account you want to make a request" +
                "&pageSize=100&resultOrder=asc" +
                "&responseParams=name,documentId,pageCount" +
                "&username=Insert your ISSUU username" +
                "&token=Insert Your Token here");

        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        request.Accept = "application/json";

        try
        {
            using (WebResponse response = request.GetResponse())
            {
                var responseValue = string.Empty;
                // grab the response  
                using (var responseStream = response.GetResponseStream())
                {
                    using (var reader = new StreamReader(responseStream))
                    {
                        responseValue = reader.ReadToEnd();
                    }
                }
                if (responseValue != "")
                {
                    List<string> lista_linkss = new List<string>();

                    JObject ApiRequest = JObject.Parse(responseValue);
                    //// get JSON result objects into a list
                    IList<JToken> results = ApiRequest["rsp"]["_content"]["result"]["_content"].Children()["document"].ToList();

                    for (int i = 0; i < results.Count(); i++)
                    {
                        Folheto folheto = new Folheto();
                        folheto.name = results[i]["name"].ToString();
                        folheto.documentId = results[i]["documentId"].ToString();
                        folheto.pageCount = Int32.Parse(results[i]["pageCount"].ToString());
                        string _date = Newtonsoft.Json.JsonConvert.SerializeObject(results[i]["uploadTimestamp"], Formatting.None, new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd hh:mm:ss" }).Replace(@"""", string.Empty);
                        folheto.uploadTimestamp = Convert.ToDateTime(_date);
                        if (!lista_nomes_Sirena.Contains(folheto.name))
                        {
                            list.Add(folheto);
                        }
                    }
                }
            }
        }
        catch (WebException ex)
        {
            // Handle error
        }

Вы должны обратить внимание на параметр "pageSize". Максимально допустимое API-значение равно 100, это означает, что максимальное количество результатов, которое вы получаете, равно 100, поскольку учетная запись, на которую я слежу, имеет около 240 PDF, я использовал этот запрос один раз с Параметр "resultOrder = asc" и другой раз со значением "resultOrder=desc".

Это позволило мне получить первые 100 PDF-файлов и последние 100 PDF-файлов. Поскольку мне не нужна была история, а были только файлы PDF, которые они будут отправлять с этого момента, это не имело значения.

Завершая работу над моим кодом, я отправляю все идентификаторы документа в созданную мной базу данных sql, и когда я запускаю программу, я проверяю, загружен ли идентификатор, если нет, то загружает ли pdf, если да, то нет т.

Надеюсь, кто-то может найти эту работу полезной

Другие вопросы по тегам