Skip to content

Commit 8aa1254

Browse files
committed
🐛 修复BiliPlus解析失败问题
1 parent 1430aab commit 8aa1254

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

src/BiliPlus.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ def _(url: str) -> str:
230230
ep_items = soup.find_all("div", {"class": "episode-item"})
231231
ep_available = []
232232
for ep in ep_items:
233-
if "https://" in ep.img["src"]:
233+
if ep.img.get("_src") is not None:
234234
ep_available.append(ep.a["href"].split("epid=")[1])
235235
total_ep_element = soup.select_one("center p")
236236
if total_ep_element:
@@ -244,7 +244,7 @@ def _(url: str) -> str:
244244
soup = BeautifulSoup(page_html, "html.parser")
245245
ep_items = soup.find_all("div", {"class": "episode-item"})
246246
for ep in ep_items:
247-
if "https://" in ep.img["src"]:
247+
if ep.img.get("_src") is not None:
248248
ep_available.append(ep.a["href"].split("epid=")[1])
249249

250250
unlock_times = 0
@@ -361,9 +361,8 @@ def _() -> list[dict]:
361361
soup = BeautifulSoup(biliplus_html, "html.parser")
362362
images = soup.find_all("img", {"class": "comic-single"})
363363
for img in images:
364-
img_url = img["_src"]
365-
url, token = img_url.split("?token=")
366-
biliplus_imgs_token.append({"url": url, "token": token})
364+
img_url = f'https://www.biliplus.com/manga/{img["_src"]}'
365+
biliplus_imgs_token.append({"url": img_url})
367366
self.imgs_token = biliplus_imgs_token
368367
if not biliplus_imgs_token:
369368
msg = f"《{self.comic_name}》章节:{self.title} " \

src/DownloadManager.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,10 @@ def __thread__EpisodeTask(self, curr_id: int, epi: Episode) -> None:
151151
if self.terminated:
152152
epi.clear(imgs_path)
153153
return
154-
img_url = f"{img['url']}?token={img['token']}"
154+
if img.get("token") is not None:
155+
img_url = f"{img['url']}?token={img['token']}"
156+
else:
157+
img_url = img["url"]
155158
img_path = epi.downloadImg(index, img_url)
156159
if img_path is None:
157160
self.reportError(curr_id)

src/Episode.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -527,7 +527,11 @@ def downloadImg(self, index: int, img_url: str) -> str:
527527
@retry(stop_max_delay=MAX_RETRY_LARGE, wait_exponential_multiplier=RETRY_WAIT_EX)
528528
def _() -> bytes:
529529
try:
530-
res = requests.get(img_url, timeout=TIMEOUT_LARGE)
530+
if img_url.find("token") != -1:
531+
res = requests.get(img_url, timeout=TIMEOUT_LARGE)
532+
else:
533+
res = requests.get(img_url, headers=self.headers, timeout=TIMEOUT_LARGE)
534+
531535
except requests.RequestException as e:
532536
logger.warning(
533537
f"《{self.comic_name}》章节:{self.title} - {index} - {img_url} 下载图片失败! 重试中...\n{e}"
@@ -562,7 +566,7 @@ def _() -> bytes:
562566

563567
# ?###########################################################
564568
# ? 保存图片
565-
img_format = img_url.split(".")[-1].split("?")[0].lower()
569+
img_format = img_url.split(".")[-1].split("?")[0].lower().replace("&append=", "")
566570
path_to_save = os.path.join(self.save_path, f"{self.real_ord}_{index}.{img_format}")
567571

568572
@retry(stop_max_attempt_number=5)

0 commit comments

Comments
 (0)