summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/webtoons.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/webtoons.py')
-rw-r--r--gallery_dl/extractor/webtoons.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/gallery_dl/extractor/webtoons.py b/gallery_dl/extractor/webtoons.py
index 86ada49..3b992a2 100644
--- a/gallery_dl/extractor/webtoons.py
+++ b/gallery_dl/extractor/webtoons.py
@@ -35,7 +35,7 @@ class WebtoonsEpisodeExtractor(WebtoonsExtractor):
filename_fmt = "{episode}-{num:>02}.{extension}"
archive_fmt = "{title_no}_{episode}_{num}"
pattern = (BASE_PATTERN + r"/([^/?&#]+)/([^/?&#]+)/(?:[^/?&#]+))"
- r"/viewer(?:\?([^#]+))")
+ r"/viewer(?:\?([^#'\"]+))")
test = (
(("https://www.webtoons.com/en/comedy/safely-endangered"
"/ep-572-earth/viewer?title_no=352&episode_no=572"), {
@@ -111,6 +111,11 @@ class WebtoonsComicExtractor(WebtoonsExtractor):
"list?title_no=1845&page=3"), {
"count": ">= 15",
}),
+ # (#820)
+ (("https://www.webtoons.com/en/challenge/scoob-and-shag/"
+ "list?title_no=210827&page=9"), {
+ "count": ">= 18",
+ }),
)
def __init__(self, match):
@@ -143,6 +148,8 @@ class WebtoonsComicExtractor(WebtoonsExtractor):
@staticmethod
def get_episode_urls(page):
"""Extract and return all episode urls in 'page'"""
- pos = page.find('id="_listUl"')
- return text.extract_iter(
- page, '<a href="', '" class="NPI=a:list', pos)
+ page = text.extract(page, 'id="_listUl"', '</ul>')[0]
+ return [
+ match.group(0)
+ for match in WebtoonsEpisodeExtractor.pattern.finditer(page)
+ ]