அதை நீங்களே செய்யுங்கள், பைத்தானில் பிக்சிவ் அனிமேஷன் பதிவிறக்கத்தை செயல்படுத்தவும் (அனலாக் உள்நுழைவு செயல்முறையுடன்)
Do It Yourself Implement Pixiv Animation Downloader Python
பி நிலையத்தில் அழகாக இருக்கும் GIF ஐ நான் காணும்போது, அதை நேரடியாக பதிவிறக்கம் செய்ய முடியாது, ஒரு நிரலாக நான் என்ன செய்ய வேண்டும்?
நிச்சயமாக, சக்கரங்களை உருவாக்க இது மீண்டும் மீண்டும் செய்யப்படுகிறது (கடந்தது)
நிச்சயமாக, நான் ஒரு மொபைல் பதிவிறக்கத்தை எழுதினேன்!
பழைய விதிகள், முதலில் GIF கோரிக்கை தகவலை பகுப்பாய்வு செய்யுங்கள். Chrome-F12-Network பக்கத்தைத் தொடங்கிய பிறகு, GIF பக்கத்தைப் புதுப்பித்து, அனைத்து கோரிக்கைகளையும் சரிபார்க்கவும், மேலும் விவரங்களுக்கு ugoira_meta எனப்படும் ஒரு பாக்கெட்டைக் காண்பீர்கள்:
ஜிப் கோப்பு url இன் மதிப்புடன் அசல் எஸ்.ஆர்.சி எனப்படும் ஒரு சொத்தைக் காணலாம்.
பிரேம்கள் புலத்தை விரிவாக்குங்கள்:
இது அனிமேஷனின் பிரேம் தகவல் என்பதை நீங்கள் காணலாம்.
அசல் எஸ்.ஆர்.சி புலத்தால் காண்பிக்கப்படும் ஜிப் கோப்பைப் பதிவிறக்க குறியீட்டைப் பயன்படுத்துகிறோம்:
ua = 'Mozilla/5.0 (Windows NT 10.0 Win64 x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36' cookie = 'testcookie' referer = 'https://www.pixiv.net/member_illust.php?mode=medium&illust_id=74512123' zip_url = 'https://i.pximg.net/img-zip-ugoira/img/2019/05/02/14/18/59/74512123_ugoira1920x1080.zip' headers = { 'user-agent' : ua, 'cookie' : cookie, 'referer' : referer, } response = requests.get(url,headers=headers) with open('test.zip','wb+') as fp : fp.write(response.content)
இயங்கிய பிறகு, ஸ்கிரிப்ட் கோப்பகத்தில் test.zip என்ற சுருக்கப்பட்ட கோப்பு உருவாக்கப்படும். டிகம்பரஷ்ஷனுக்குப் பிறகு, 6 இலக்க வரிசையில் பெயரிடப்பட்ட jpg கோப்பைக் காணலாம் (பிரேம்கள் புலத்துடன் ஒன்றிலிருந்து ஒன்று கடித).
வலைப்பக்கத்தில் எந்த நேரத்திலும் வலது கிளிக் செய்வதன் மூலம் மட்டுமே நீங்கள் ஒரு தனி jpg கோப்பை பெற முடியும். நிலையான பிரேம்களை GIF களில் இணைக்க வலைப்பக்கம் எங்களுக்கு உதவாது என்பது வெளிப்படை. இது ஒரு சுழற்சியில் நிலையான பிரேம்களைக் காட்டுகிறது. இந்த நடவடிக்கையை நாம் செயல்படுத்த வேண்டும்.
இதுவரை GIF ஐ பதிவிறக்கும் செயல்முறை:
1 கோரிக்கை தலைப்பை உருவாக்கி, அசல் எஸ்.ஆர்.சி URL ஐப் பெற ugoira_meta இடைமுகத்தைக் கோருங்கள்
அசல் எஸ்.ஆர்.சி ஜிப் கோப்பைப் பதிவிறக்க கோரிக்கை தலைப்பை மீண்டும் உருவாக்கவும்.
நிலையான பிரேம்களைப் பெற உள்நாட்டில் ZIP ஐக் குறைக்கவும், மேலும் GIF களை ஒன்றிணைக்க பிரேம்கள் புலம் வழங்கிய தகவல்களைப் பயன்படுத்தவும்.
நிலையான பிரேம் கோப்பை அழிக்கவும்.
குறியீடு பின்வருமாறு (GIF தலைமுறை இமேஜியோவைப் பயன்படுத்துகிறது):
from fake_useragent import UserAgent import json,requests,zipfile,os import imageio def download(pid) : file_path = str(pid) headers = {'user-agent': UserAgent().random,'cookie' : cookie} # Get gif information, extract zip url gif_info = json.loads(requests.get(self.gif_info_url.format(pid=pid), headers=headers).text) delay = [item['delay'] for item in gif_info['body']['frames']] delay = sum(delay) / len(delay) zip_url = gif_info['body']['originalSrc'] # Download Compressed Pack gif_data = requests.get(zip_url, headers=headers) gif_data = gif_data.content try: os.mkdir(file_path) except Exception: pass zip_path = os.path.join(file_path, 'temp.zip') with open(zip_path, 'wb+') as fp: fp.write(gif_data) # temp_file_list = [] zipo = zipfile.ZipFile(zip_path, 'r') for file in zipo.namelist(): temp_file_list.append(os.path.join(file_path, file)) zipo.extract(file, file_path) zipo.close() # Read all static images, synthetic gif image_data = [] for file in temp_file_list: image_data.append(imageio.imread(file)) imageio.mimsave(os.path.join(file_path, str(pid) + '.gif'), image_data, 'GIF', duration=delay / 1000) # Clear all intermediate files. for file in temp_file_list: os.remove(file) os.remove(zip_path)
குக்கீகளைப் பற்றி:
உண்மையில், பி நிலையத்தின் வலம் எதிர்ப்பு வழிமுறை மிகவும் எளிதானது, இரண்டு புள்ளிகள் மட்டுமே: குக்கீ மற்றும் நடுவர்.
நடுவர் என்பது பக்கத்தின் ஒவ்வொரு கோரிக்கையின் நடுவர் முகவரியையும் பிக்சிவ் சரிபார்க்கும் என்பதாகும். பக்கத்தில் உள்ள கோரிக்கை தொடர்புடைய பக்கத்தால் அனுப்பப்பட வேண்டும் (மேலே பதிவிறக்கம் செய்யப்பட்ட ஜிப் கோப்பு போன்றவை), எனவே கோரிக்கையில் நடுவர் தகவலை நாங்கள் சேர்க்க வேண்டும்.
குக்கீ விளக்கப்பட தேவையில்லை, உருவகப்படுத்தப்பட்ட உள்நுழைவைச் செய்து குக்கீயைச் சேமிக்க வேண்டும்.
பி நிலைய உள்நுழைவு கோரிக்கையை பகுப்பாய்வு செய்யுங்கள்:
Pixiv_id & password: கணக்கு கடவுச்சொல்
ஆதாரம்: உள்நுழைவு இயங்குதள அடையாளங்காட்டி
குறிப்பு: ஏறும் எதிர்ப்பு அடையாளங்காட்டி
Return_to: உள்நுழைந்த பின் குதிக்கும் பக்கம்.
Post_key ஏன் என்று தெரியவில்லை ...
மூலக் குறியீட்டில் நேரடியாக ctrl + f ஐக் காணலாம், இது நேரடியாக மூலக் குறியீட்டில் எழுதப்பட்டுள்ளது, மேலும் குறியாக்கம் இல்லாமல் கூட, ஆனால் நீங்கள் பார்வையிடும் ஒவ்வொரு முறையும் தோராயமாக உருவாக்கப்படும்.
(இது மூன்றாம் தரப்பு கேஜெட்களின் வளர்ச்சிக்கு மிகவும் துணைபுரிகிறது என்று கூறலாம்)
இந்த கட்டத்தில், உருவகப்படுத்துதல் உள்நுழைவு செயல்முறை பெறப்படுகிறது:
1 உள்நுழைவு பக்கத்தை அணுகி post_key ஐப் பிரித்தெடுக்கவும்
2 இடுகை கோரிக்கை மூலம் கணக்கு கடவுச்சொல்லை சமர்ப்பிக்கவும்
3 குக்கீயைச் சேமிக்கவும்
இங்கே குறியீடு:
login_post_url = 'https://accounts.pixiv.net/api/login?lang=zh' login_data_url = 'https://accounts.pixiv.net/login?lang=zh&source=pc&view_type=page&ref=wwwtop_accounts_index' session = requests.session() data = session.get(url=login_data_url, headers=self.headers).content.decode('utf8') post_key = bs4.BeautifulSoup(data, 'lxml').find(attrs={'name': 'post_key'})['value'] login_data = { 'pixiv_id': PIXIV_ID, 'password': PASSWORD, 'post_key': post_key, 'source': 'pc', 'ref': 'wwwtop_accounts_index', 'return_to': 'https://www.pixiv.net/', } session.post(url=login_post_url, data=login_data) session.close() cookey = requests.utils.dict_from_cookiejar(session.cookies) cookie = '' for k, v in cookey.items(): cookie += k + '=' + v + ' '
ஒரு வகுப்பை எழுதுங்கள், தானாக உள்நுழைந்து, நீங்கள் தொடங்கும் ஒவ்வொரு முறையும் சமீபத்திய குக்கீயைப் பெறுங்கள், நீங்கள் GIF ஐ மகிழ்ச்சியுடன் பதிவிறக்கம் செய்யலாம்!
ஒரு கட்டுரையை எழுதத் தொடங்கினேன், விமர்சிக்கவும் சரி செய்யவும் தலாவை வரவேற்கிறோம்
விரிவான குறியீட்டைக் காண்க என் கிதுப்
Exe பதிப்பு (பயன்படுத்த கிளிக் செய்க): Baidu மேகக்கணி இணைப்பு பிரித்தெடுத்தல் குறியீடு: y2wv
END.
உரை விளம்பர நேரத்தின் முடிவு: குவாங்சோ / வுஹான் பகுதியில் ஊர்வன இன்டர்ன்ஷிப் / முழுநேர பதவியை நாடுவது, சமீபத்திய பட்டதாரிகளின் 19 ஆண்டுகள், மென்பொருள் தொழில்நுட்ப மேஜர், மூன்றாம் தரப்பு நூலகங்களான கோரிக்கைகள், ஸ்க்ராபி, அழகான சூப், MySQL இன் திறமையான பயன்பாடு , ரிடிஸ்.
கருத்துக்கள் அல்லது ரூட் @ xxxxx க்கு மின்னஞ்சல் செய்யவும்
இந்த கட்டுரை முதலில் அறிவில் வெளியிடப்பட்டது: https://zhuanlan.zhihu.com/p/64462335