很抱歉,我回來了!

阿珏酱發表於2024-05-27

那是一個月黑風高、風雨交加、伸手不見五指的黑夜,冥冥之中好似要發生點什麼

因為出了個"意外"再加上疫情原因,我一度變成了"植物人",差點去了二次元,好在"搶救"回來了。這幾年找我的訊息我也收不到了,感謝那些還在和關心我的人,謝謝。

錯的並不是我,而且這個冥冥之中註定的世界

這些年找我的人和事,我也全部不知道,QQ、微信一些訊息太久也都收不到了
imgimgimg
看到我多年未亮起的頭像重新亮了起來,不少朋友都來問我怎麼回事。
很感謝那些素未謀面的網友,或許叫朋友更親切些,你們還一直惦記著我,讓我很是感到。

一找就是找了我三年
imgimgimgimg
滿世界的找我
img

感動的不要不要的

關於部落格

部落格首次建成時間是2016-06-09,如今已經成立了快8年之久了,在各種災難中也頑強的生存了下來
期間也認識了好多好多的小夥伴,一起討論,一起進步,一起成長。所以我並不想讓部落格就此消失
img
部落格資料的原本有自動備份到七牛雲的,但直到現在才知道,備份不知道什麼原因,19年10月份左右就停掉了
都說網際網路是有記憶的,本著“頭可斷血可流,資料不能丟”的精神,我在茫茫網路中需要數日,終究還是讓我找到了部落格的網站存檔。 archive (國外著名的網站檔案館專案)
於是就寫了個Python指令碼把文章和評論資料給爬下來了。
爬完後我發現有人已經給我備份了(我部落格之前是別人贊助的三年)
img img

部落格搬遷

部落格搬遷到部落格園,其實也是不得已而為之

但是部落格的原域名(52ecy.cn,moeins.cn,moeins.com)在到期後被人搶注,溝通無果後,一時半會是拿不回來的了
迫無無奈吧,只能暫且先將部落格搬遷到部落格園來(之後是否在自建的話再做打算把)。另一面也可能是現在沒有太多閒時間來折騰自己的系統,放在部落格園反倒是更加省心省力。但是評論就沒那麼方便了,需要登入在可以發表評論,當然有啥問題也可以直接在群裡@我

其實早在18年底的時候,我就已經有想換主題的想法了->這下真鴿了 我可真能拖,太佩服我自己了
無奈之前的emlog系統沒有合適現成的,自己又懶著移植,便一直一拖再拖。

原來那個主題我一直就想換掉了,因為不太好看,沒有個性,就是規規矩矩的,並不符合我的個性和風格
但是呢,我審美雖然特別棒,但你要讓我自己寫一套符合我審美的主題出來那就是有點困難了

後來突然看到部落格園使用者不忘編碼的部落格,心想部落格園還支援這樣自己美化。
後便決定暫時先搬遷到部落格園再說吧。

其實一直就想換這種二次元風格的主題了
目前此部落格美化風格樣式基於櫻花莊的白貓的WordPress主題Sakura,不忘編碼移植,但BUG和細節問題較多,我又花了兩天最佳化了一下,當也好多頁面沒最佳化,之後在慢慢來吧 (能明天在做的事為什麼不留給明天的我去做呢)

由於之前的emlog部落格使用的是HTML的TinyMCE編輯器,而且還是很老的版本,所以生成的文章的HTML程式碼也是相當的混亂,所以搬遷至部落格園的markdown格式的時候出現了很多的樣式不相容問題,我也已經儘可能的修復了一些,當也沒法保證所有文章都能正常的顯示,看到的話再慢慢修吧

友情連結我也單獨搞了一個頁面給搬遷過去了,但也很多友鏈的網站也已經無法訪問了,有的也已經下掉友鏈了。
現在的我也不是獨立域名了,都不好意思再去申請友鏈了.....

我為什麼要寫部落格?

有人會覺得這些有這麼重要嗎?
有時候我也是想說點什麼,想寫點什麼,但又沒人說,沒地方寫,就是需要那麼一個地方
其實我做部落格也不是為了什麼流量啊,賺錢之類的,就想搞一片自己的小天地
也許也正因這一份熱愛,所以我才能慢慢堅持下來,奈何事與願違,出了點意外

因為一句“我又不想他部落格從此也失聯,無法訪問開啟”
img

@寒穹 那貨還說我:“阿珏,那麼久了怎麼還那麼二刺螈”。
我想這麼多年來,一直沒變的就是我了吧。

img

Python

搬遷的Python的程式碼,雖然沒啥用,但算是記錄一下,供有需要的人學習學習

點選檢視程式碼
import os
import re
import time
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse, parse_qs

# 指定檔案路徑
file_path = "C:\\Users\\Administrator\\Desktop\\blog\\content.txt"
save_folder = "C:\\Users\\Administrator\\Desktop\\blog\\content\\"

def save_to_file(data, file_name):
    try:
        file_path = os.path.join(save_folder, file_name + ".txt")
        with open(file_path, 'a', encoding='utf-8') as file:
            file.write(data)
        print("資料已成功儲存到檔案:", file_path)
    except Exception as e:
        print("儲存檔案時出錯:", e)


def remove_html_tags(text):
    soup = BeautifulSoup(text, 'html.parser')
    return soup.get_text()


def comment(html_content):
    comment_matches = re.findall(r'<div class="comment (.*?)" id="comment-\d+">[\s\S]*?<img .*?inal=".*?202.*?/([^"]+)"/>[\s\S]*?<div ' +
                                 'class="comment-content">(.*?)</div>[\s\S]*?itle=".*?">(.*?)</span>[\s\S]*?<span class="comment-time">(.*?)</span>',
                                 html_content, re.DOTALL)
    article_comments = ''
    if comment_matches:
        i = 0
        for comment_match in comment_matches:
            if 'comment-children' in comment_match[0]:
                i += 1
                is_reply_comment = '>' * i
            else:
                is_reply_comment = '>'
                i = 1

            #頭像 大小控制在40
            # 相容gravatar頭像 https://secure.gravatar.com/avatar/ 
            if 'gravatar.com' in comment_match[1]:
                avatar_url = '![](' + str(re.sub(r'(\?|&)s=\d+', '\\1s=40', str(comment_match[1]))) + ')    ' 
            else: 
                parsed_url = urlparse(comment_match[1])
                query_params = parse_qs(parsed_url.query)
                dst_uin = query_params.get('dst_uin', ['1638211921'])
                avatar_url = '![]('+'https://q1.qlogo.cn/g?b=qq&nk='+str(dst_uin[0])+'&s=40'+')    '   

            comment_content = comment_match[2].strip()  
            nickname = comment_match[3].strip()  
            comment_time = comment_match[4].strip()  
            link_url = re.search(r'030.*?/(.*?)" .*? rel', nickname)  

            # 構造評論的markdown格式
            comment_content = is_reply_comment + comment_content.replace('\n', '>')
            comment_content = comment_content.replace('##這篇評論是私密評論##', '[#這篇評論是私密評論#]')

            # 替換表情圖片
            soup = BeautifulSoup(comment_content, 'html.parser')
            for img in soup.find_all('img'):
                title_text = img.get('title', '')
                img.replace_with('[#'+title_text+']')

            comment_content = soup.get_text()

            # 儲存評論使用者的URL地址
            if link_url:
                nickname = '['+remove_html_tags(nickname)+']'
                link_url = '(' + link_url[1] + ')   '
            else:
                link_url = ''
                nickname = remove_html_tags(nickname) + '   '

            if i == 1:
                article_comments += '\n'

            article_comments += is_reply_comment + avatar_url + nickname + link_url + comment_time + '\n' + comment_content + '\n'

        return article_comments
    else:
        return ''


def process_article(url):
    print("當前執行===="+url)
    response = requests.get(url)

    if response.status_code == 200:
        html_content = response.text
        soup = BeautifulSoup(html_content, 'html.parser')
        article_title = soup.find('h1', class_='article-title') 
        article_mate = soup.find('div', class_='article-meta') 
        article_article = soup.find('article', class_='article-content') 

        soup_content = BeautifulSoup(article_article.prettify(), 'html.parser')
        img_tags = soup_content.find_all('img')
        pattern = r"https://web.*?_/"
        
        for img_tag in img_tags:
            if 'data-original' in img_tag.attrs:
                original_url = img_tag['data-original']
            else:
                original_url = img_tag['src']

            cleaned_url = re.sub(pattern, '', original_url)
            new_url = 'https://image.baidu.com/search/down?url=' + cleaned_url
            img_tag['src'] = new_url
            del img_tag['data-original']

        article_comment = soup.find('div', class_='article_comment_list') 
        data = "###### `當你看到這個提示的時候,說明當前的文章是由原emlog部落格系統搬遷至此的,文章釋出時間已過於久遠,編排和內容不一定完整,還請諒解`\n\n" + '###' + article_title.text.strip()+'\n\n'+article_mate.text.strip().replace('\n', '').replace('\r', '').replace('\t', '')+'\n' + soup_content.prettify().replace('<article class="article-content">', '').replace('</article>', '')

        save_to_file(data + '\n網友評論:\n\n', article_title.text.strip())

        data = comment(html_content)

        if not data:
            return

        save_to_file(data, article_title.text.strip())

        if article_comment:
            comment_links = re.findall(r'<a\s+href="(.*?)nts"', str(article_comment))

            if comment_links:
                print('有分頁評論資料')
                for link in comment_links:
                    url = link +"nts"
                    print(url)
                    response = requests.get(url)

                    if response.status_code == 200:
                        html_content = response.text
                        data = comment(html_content)
                        if not data:
                            return
                        save_to_file(data, article_title.text.strip())
                        print("寫分頁評論資料中")
    else:
        print("Failed to retrieve the webpage.")


def main():
    with open(file_path, 'r', encoding='utf-8') as file:
        for line in file:
            segments = line.strip().split("----")

            if len(segments) > 0:
                url = segments[0]  
                process_article(url)
            else:
                print("No URL found in the line.")
            print('開啟下一篇文章')
            time.sleep(4)

if __name__ == "__main__":
    main()

相關文章