From d5b237d06b5a4674cadad40f074b65bea2b4f641 Mon Sep 17 00:00:00 2001 From: philly Date: Sun, 3 Apr 2022 03:15:42 +0800 Subject: [PATCH] first --- .gitignore | 6 ++ README.md | 21 ++++++- Rename_me_set.yaml | 1 + gettags.py | 40 +++++++++++++ image/csv.png | Bin 0 -> 28522 bytes nfavorites.py | 137 +++++++++++++++++++++++++++++++++++++++++++++ requirements.txt | 6 ++ 7 files changed, 210 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 Rename_me_set.yaml create mode 100644 gettags.py create mode 100644 image/csv.png create mode 100644 nfavorites.py create mode 100644 requirements.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..12444fc --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.part +*.pyc +*.log +set.yaml +tag.json +output.csv \ No newline at end of file diff --git a/README.md b/README.md index e7ce25f..3dffd8f 100644 --- a/README.md +++ b/README.md @@ -1 +1,20 @@ -# nhentai-favorites \ No newline at end of file +# nhentai-favorites + +### how to use? +`pip install -r ".\requirements.txt"` + + +Rename_me_set.yaml (rename)-> set.yaml +enter your cookie +open nfavorites.py + +### how to get my cookie? + +open https://nhentai.net/favorites/ +press F12 +switch to network menu +find favorites/ +copy cookie to set.yaml + + +![alt text](https://github.com/phillychi3/nhentai-favorites]/blob/main/image/csv.png?raw=true) diff --git a/Rename_me_set.yaml b/Rename_me_set.yaml new file mode 100644 index 0000000..f656f48 --- /dev/null +++ b/Rename_me_set.yaml @@ -0,0 +1 @@ +cookid: "" \ No newline at end of file diff --git a/gettags.py b/gettags.py new file mode 100644 index 0000000..7d9a8ce --- /dev/null +++ b/gettags.py @@ -0,0 +1,40 @@ +import gevent.monkey +gevent.monkey.patch_all() +import json + +import fake_useragent +import requests +from bs4 import BeautifulSoup + +url = "https://nhentai.net/tags/" +def get_tags(): + now = 1 + tagjson = {} + + while True: + ua = fake_useragent.UserAgent() + useragent = ua.random + headers = { + 'user-agent': useragent + } + data = requests.get(f"{url}?page={now}", headers=headers) + soup = BeautifulSoup(data.text, 'html.parser') + tags = soup.find_all("a", class_='tag') + if tags == []: + break + tagnumbers = [t.get('class') for t in tags] + tagnames = [t.find('span', class_='name').get_text() for t in tags] + tagnumber = [] + for i in tagnumbers: + fixnum = i[1].replace('tag-', '') + tagnumber.append(fixnum) + for i in enumerate(tagnumber): + tagjson[i[1]] = tagnames[i[0]] + now += 1 + with open('tag.json', 'w') as f: + json.dump(tagjson, f) + return + + +if __name__ == '__main__': + get_tags() diff --git a/image/csv.png b/image/csv.png new file mode 100644 index 0000000000000000000000000000000000000000..667d558881e1009e3bfdeaebd797268866af8b0d GIT binary patch literal 28522 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 z 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 UI5L^x_v1lo%34Y}XHD@~ literal 0 HcmV?d00001 diff --git a/nfavorites.py b/nfavorites.py new file mode 100644 index 0000000..a4ce012 --- /dev/null +++ b/nfavorites.py @@ -0,0 +1,137 @@ +import gevent.monkey + +gevent.monkey.patch_all() +import csv +import json +import os +import queue +import random +import threading +import time + +import fake_useragent +import requests +import yaml +from bs4 import BeautifulSoup +from progress.spinner import PixelSpinner + +from gettags import get_tags + + +with open('set.yaml', 'r') as f: + cookie = yaml.load(f, Loader=yaml.CLoader)["cookid"] +# setting +url = "https://nhentai.net/favorites/" +apiurl = "https://nhentai.net/api/gallery/" +table = [ + ["id", "name", "tags"] +] +now = 1 +allnumbers = [] +allnames = [] +alltags = [] + +class gettagonline(threading.Thread): + def __init__(self, queue,number): + threading.Thread.__init__(self) + self.number = number + self.queue = queue + + def run(self): + while self.queue.qsize() > 0: + num = self.queue.get() + #print("get %d: %s" % (self.number, num)) + ua = fake_useragent.UserAgent() + useragent = ua.random + headers = { + 'user-agent': useragent + } + r = requests.get(apiurl + num, headers=headers) + data = r.json() + ctag = [] + for i in enumerate(data['tags']): + ctag.append(i[1]['name']) + alltags.append(ctag) + time.sleep(random.uniform(0.5,1)) + + + +set1 = input("請問要使用離線資料嗎?(y/n)(默認為否)") +if set1 == "y".lower() or set1 == "yes".lower() : + if not os.path.isfile("tag.json"): + print("沒有發現離線資料 抓取中請稍後...") + get_tags() + print("抓取完畢") + print("使用離線資料") +else: + print("使用線上資料") + threadscount = input("請輸入要使用幾個線程(默認為5 不可超過10)") + if threadscount == "": + threadscount = 5 + else: + try: + threadscount = int(threadscount) + if threadscount > 10: + threadscount = 10 + except: + threadscount = 5 + +spinner = PixelSpinner('抓取資料中...') +while True: + ua = fake_useragent.UserAgent() + useragent = ua.random + headers = { + 'user-agent': useragent, + 'cookie': cookie + } + data = requests.get(f"{url}?page={now}", headers=headers) + soup = BeautifulSoup(data.text, 'html.parser') + book = soup.find_all("div", class_='gallery-favorite') + if book == []: + break + numbers = [t.get('data-id') for t in book] + names = [t.find('div',class_="caption").get_text() for t in book] + tags_ = [t.find('div',class_="gallery").get('data-tags') for t in book] + tags = [] + for i in tags_: + tags__ = i.split(' ') + tags.append(tags__) + allnumbers.extend(numbers) + allnames.extend(names) + alltags.extend(tags) + now += 1 + spinner.next() + + + +if set1 == "y".lower() or set1 == "yes".lower() : + with open('tag.json', 'r') as f: + tagjson = json.load(f) + for i in enumerate(allnumbers): + tagstr = "" + for j in alltags[i[0]]: + if j in tagjson: + tagstr += tagjson[j] + ", " + + table.append([i[1], allnames[i[0]], tagstr]) +else: + alltags=[] # 清空 + get_tags_queue = queue.Queue() + threads = [] + for i in allnumbers: + get_tags_queue.put(i) + for i in range(threadscount): + t = gettagonline(get_tags_queue,i) + t.start() + threads.append(t) + for t in threads: + t.join() + + + for i in enumerate(allnumbers): + table.append([i[1], allnames[i[0]], alltags[i[0]]]) + + +with open('output.csv', 'w', newline='',encoding="utf_8_sig") as csvfile: + writer = csv.writer(csvfile) + writer.writerows(table) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e822f0a --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +PyYAML == 5.4.1 +bs4 +fake_useragent == 0.1.11 +gevent == 21.1.2 +progress == 1.6 +requests == 2.27.1