里程碑版本

This commit is contained in:
vincent 2023-07-21 11:37:37 +08:00
parent f9dff30eac
commit 6c418ebc18
3 changed files with 280 additions and 0 deletions

120
input copy.txt Normal file
View File

@ -0,0 +1,120 @@
第120话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-119/
第119话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-118/
第118话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-117/
第117话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-116/
第116话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-115/
第115话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-114/
第114话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-113/
第113话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-112/
第112话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-111/
第111话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-110/
第110话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-109/
第109话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-108/
第108话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-107/
第107话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-106/
第106话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-105/
第105话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-104/
第104话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-103/
第103话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-102/
第102话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-101/
第101话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-100/
第100话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-99/
第99话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-98/
第98话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-97/
第97话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-96/
第96话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-95/
第95话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-94/
第94话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-93/
第93话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-92/
第92话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-91/
第91话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-90/
第90话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-89/
第89话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-88/
第88话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-87/
第87话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-86/
第86话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-85/
第85话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-84/
第84话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-83/
第83话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-82/
第82话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-81/
第81话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-80/
第80话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-79/
第79话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-78/
第78话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-77/
第77话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-76/
第76话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-75/
第75话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-74/
第74话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-73/
第73话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/%e7%ac%ac73%e8%af%9d/
第72话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-71/
第71话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-70/
第70话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-69/
第69话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/%e7%ac%ac69%e8%af%9d/
第68话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-67/
第67话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-66/
第66话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-65/
第65话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-64/
第64话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-63/
第63话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-62/
第62话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-61/
第61话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-60/
第60话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-59/
第59话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-58/
第58话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-57/
第57话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/%e7%ac%ac57%e8%af%9d/
第56话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-55/
第55话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-54/
第54话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-53/
第53话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-52/
第52话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-51/
第51话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-50/
第50话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-49/
第49话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-48/
第48话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-47/
第47话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/%e7%ac%ac47%e8%af%9d/
第46话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-120/
第45话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-45/
第44话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-44/
第43话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-43/
第42话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-42/
第41话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-41/
第40话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-40/
第39话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-39/
第38话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-38/
第37话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-37/
第36话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-36/
第35话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-35/
第34话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-34/
第33话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-33/
第32话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-32/
第31话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-31/
第30话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-30/
第29话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-29/
第28话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/%e7%ac%ac27%e8%af%9d/
第27话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-27/
第26话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-26/
第25话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-25/
第24话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-24/
第23话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-23/
第22话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-22/
第21话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-21/
第20话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-20/
第19话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-19/
第18话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/%e7%ac%ac17%e8%af%9d/
第17话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-17/
第16话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-16/
第15话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-15/
第14话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-14/
第13话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-13/
第12话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-12/
第11话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-11/
第10话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-10/
第9话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-9/
第8话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-8/
第7话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-7/
第6话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-18/
第5话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-28/
第4话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-46/
第3话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-56/
第2话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-68/
第1话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-72/

1
input.txt Normal file
View File

@ -0,0 +1 @@
第2话 - https://bakamh.com/manga/%e6%81%b6%e9%9c%b8%e5%ae%a4%e5%8f%8b%e6%af%8b%e9%80%9a%e6%9d%a5/c-68/

159
main.py Normal file
View File

@ -0,0 +1,159 @@
import os
import requests
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutor
from PIL import Image
import io
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
def get_html(url, max_retries=3):
session = requests.Session()
adapter = requests.adapters.HTTPAdapter(max_retries=max_retries)
session.mount("http://", adapter)
session.mount("https://", adapter)
try:
response = session.get(url)
response.raise_for_status()
return response.text
except Exception as e:
print(f"Error occurred while fetching HTML from {url}: {e}")
raise Exception("获取网页html失败")
def download_image(img_url, max_retries=3):
for retry in range(max_retries):
try:
with requests.get(img_url, stream=True) as response:
response.raise_for_status()
return response.content
except Exception as e:
if retry < max_retries - 1:
print(
f"Failed to download image, retrying ({retry+1}/{max_retries})..."
)
else:
print("Failed to download image after multiple retries, skipping.")
return None
def get_img_urls(html_content):
soup = BeautifulSoup(html_content, "html.parser")
img_tags = soup.find("div", class_="reading-content").find_all("img")
img_urls = []
for img_tag in img_tags:
img_url = img_tag.attrs["data-src"]
img_urls.append(img_url)
return img_urls
def create_img_obj_list(img_url_list):
img_obj_list = []
for url in img_url_list:
obj = dict()
obj["url"] = url
obj["data"] = None
img_obj_list.append(obj)
# TODO remember to delete
if len(img_obj_list) > 2:
break
return img_obj_list
def fill_img_obj(img_obj):
url = img_obj["url"]
data = download_image(url)
if data is None:
raise Exception("下载图片失败")
img_obj["data"] = data
def save_images_to_directory(img_obj_list, directory_path):
try:
# 创建保存图片的目录(如果不存在)
os.makedirs(directory_path, exist_ok=True)
for idx, img_obj in enumerate(img_obj_list):
url = img_obj["url"]
data = img_obj["data"]
# 获取图片的扩展名假设url以图片扩展名结尾
extension = os.path.splitext(url)[1]
# 图片文件名,这里用序号作为文件名
file_name = f"image_{idx}{extension}"
file_path = os.path.join(directory_path, file_name)
# 将图片数据写入本地文件
with open(file_path, "wb") as file:
file.write(data)
print("图片保存成功!")
except Exception as e:
print(f"图片保存失败:{e}")
def generate_pdf_from_images(img_obj_list, output_file):
try:
c = canvas.Canvas(output_file, pagesize=letter)
for img_obj in img_obj_list:
# 从图片对象的 data 字段中创建图像对象
img_data = img_obj['data']
img = Image.open(io.BytesIO(img_data))
# 将图像大小调整为 PDF 页面大小
img_width, img_height = img.size
pdf_width, pdf_height = letter
scale = min(pdf_width / img_width, pdf_height / img_height)
new_width, new_height = int(img_width * scale), int(img_height * scale)
img = img.resize((new_width, new_height), Image.ANTIALIAS)
# 将图像添加到 PDF 页面中
c.drawInlineImage(img, 0, 0, width=new_width, height=new_height)
# 创建新的页面
c.showPage()
c.save()
print("PDF 生成成功!")
except Exception as e:
print(f"PDF 生成失败:{e}")
def process_batch(lines):
for line in lines:
line = line.strip() # 去掉每行开头和结尾的空白字符
if line:
# 解析出 HTML 文件名和 URL 地址
file_name, _, url = line.partition(" - ")
html_content = get_html(url)
img_url_list = get_img_urls(html_content)
img_obj_list = create_img_obj_list(img_url_list)
# 使用 ThreadPoolExecutor 创建线程池
with ThreadPoolExecutor() as executor:
# 多线程处理图片下载和替换
executor.map(fill_img_obj, img_obj_list)
# save_images_to_directory(img_obj_list, directory_path="imgs")
generate_pdf_from_images(img_obj_list, output_file=f"imgs/{file_name}.pdf")
if __name__ == "__main__":
file_name = "input.txt"
batch_size = 3 # 每个线程处理的行数
with open(file_name, "r", encoding="utf-8") as file:
lines = file.readlines()
# 使用 ThreadPoolExecutor 创建线程池
with ThreadPoolExecutor() as executor:
# 按照 batch_size 将行分批次处理
for i in range(0, len(lines), batch_size):
batch_lines = lines[i : i + batch_size]
executor.submit(process_batch, batch_lines)