diff --git a/input copy.txt b/input copy.txt new file mode 100644 index 0000000..00259fa --- /dev/null +++ b/input copy.txt @@ -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/ \ No newline at end of file diff --git a/input.txt b/input.txt new file mode 100644 index 0000000..aff7249 --- /dev/null +++ b/input.txt @@ -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/ \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..15409a6 --- /dev/null +++ b/main.py @@ -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)