Skip to content

Instantly share code, notes, and snippets.

@drasticactions
Created January 1, 2019 22:46
Show Gist options
  • Save drasticactions/c186aae3daa65c487814abb3a94c8e95 to your computer and use it in GitHub Desktop.
Save drasticactions/c186aae3daa65c487814abb3a94c8e95 to your computer and use it in GitHub Desktop.
using System;
using System.Threading.Tasks;
using System.Net;
using System.Net.Http;
using System.Collections.Generic;
using AngleSharp;
using AngleSharp.Parser.Html;
using System.Linq;
using System.IO;
namespace OtakuBellImages
{
class Program
{
public static List<string> ImageLinks = new List<string>();
public static HtmlParser Parser = new HtmlParser();
public static HttpClient Client;
public static StreamWriter LinksWriter;
static async Task Main(string[] args)
{
LinksWriter = new StreamWriter("imagelink.txt", true);
LinksWriter.AutoFlush = true;
Client = new HttpClient();
await ParseGallery("https://www.otakubell.com/LDs/");
}
static async Task ParseGallery(string link)
{
var page = await Client.GetAsync(link);
var pageHtml = await page.Content.ReadAsStringAsync();
var pageDom = await Parser.ParseAsync(pageHtml);
var thumbnailPictures = pageDom.QuerySelectorAll(".thumbnails");
foreach (var thumb in thumbnailPictures)
{
var linkRefs = thumb.QuerySelectorAll("a");
foreach (var linkRef in linkRefs)
{
var linkUrl = linkRef.GetAttribute("href");
Console.WriteLine(linkUrl);
if (linkUrl.Contains("picture.php"))
{
var thumbnailImageSrc = linkRef.QuerySelector("img").GetAttribute("src");
LinksWriter.WriteLine(thumbnailImageSrc.Replace("_data/i/", "").Replace("-th", ""));
}
}
}
var thumbnailCategory = pageDom.QuerySelectorAll(".thumbnailCategory");
foreach(var thumb in thumbnailCategory)
{
var linkRef = thumb.QuerySelector("a");
var linkUrl = linkRef.GetAttribute("href");
Console.WriteLine(linkUrl);
// Category Link
if (linkUrl.Contains("index.php"))
await ParseGallery(linkUrl);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment