はてなキーワード: bookmarkとは
パソコン画面右上のアイコンで選ぶ表示スタイルを一番右の「ヘッドライン」表示にしといてな
/* ヘッドライン表示を切り詰める */ /* #container 指定でCSS優先度を上げる必要がある */ body[data-entrylist-layout="headline"] #container .entrylist-main{ padding-right: 0 !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents{ padding-left: 0 !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users{ position: static !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users{ top: 14px !important; } /* ヘッドライン表示にサムネイルを追加 */ body[data-entrylist-layout="headline"] #container .entrylist-contents-main{ display: grid; grid-template: "users body title" 28px "bookmark body domain" 20px / 60px 120px 1fr; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users{ grid-area: users; } body[data-entrylist-layout="headline"] #container .entrylist-contents-users a span{ margin-right: 0; } body[data-entrylist-layout="headline"] #container .following-bookmarks-container{ grid-area: bookmark; position: absolute; left: 20px; bottom: 2.5px; } body[data-entrylist-layout="headline"] #container .entrylist-contents-body{ grid-area: body; } body[data-entrylist-layout="headline"] #container .entrylist-contents-title{ grid-area: title; z-index: 99; } body[data-entrylist-layout="headline"] #container .entrylist-contents-title > a{ margin-left: -120px; padding-left: 120px; margin-bottom: -28px; padding-bottom: 28px; width: 890px; white-space: nowrap; display: block; } body[data-entrylist-layout="headline"] #container .entrylist-contents-body{ display: block !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-thumb{ position: static; } body[data-entrylist-layout="headline"] #container .entrylist-contents-thumb span{ width: 100px; height: 50px; } body[data-entrylist-layout="headline"] #container .entrylist-contents-thumb{ background: #f0f0f0; width: 100px; height: 50px; background-position: 50%; background-size: cover; border-radius: 4px; } /* 2行目に、総合ではドメイン(domain), サイト内一覧ではカテゴリと時刻(meta), マウスホバー時はいずれも概要文(description) */ body[data-entrylist-layout="headline"] #container .entrylist-contents-domain, body[data-entrylist-layout="headline"] #container .entrylist-contents-meta, body[data-entrylist-layout="headline"] #container .entrylist-contents-description{ grid-area: domain; display: block; opacity: 0; padding: 0 !important; } body[data-entrylist-layout="headline"] #container .entrylist-contents-meta > li{ vertical-align: top; } html[data-stable-request-url^="https://b.hatena.ne.jp/entrylist/"] body[data-entrylist-layout="headline"] #container .entrylist-contents-domain, html[data-stable-request-url^="https://b.hatena.ne.jp/site/"] body[data-entrylist-layout="headline"] #container .entrylist-contents-meta{ opacity: 1; } body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-domain img.favicon + span, body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-meta{ opacity: 0; } body[data-entrylist-layout="headline"] #container .entrylist-contents-description{ opacity: 0; position: absolute; top: calc(40px - 3px); left: calc(180px + 16px + .5em); height: 20px; line-height: 20px; color: #999; min-height: auto !important; padding-right: 0 !important; width: 890px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } html[data-stable-request-url^="https://b.hatena.ne.jp/site/"] body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-domain, body[data-entrylist-layout="headline"] #container .entrylist-contents:hover .entrylist-contents-description{ opacity: 1; } /* 増田調整 */ body[data-entrylist-layout="headline"] #container a[href^="/entry/s/anond.hatelabo.jp/"] .entrylist-contents-thumb{ background-image: url('https://cdn-ak-scissors.b.st-hatena.com/image/square/b1638cdb5807a4788e4ba3c1109a984166e095fc/height=288;version=1;width=512/https%3A%2F%2Fanond.hatelabo.jp%2Fimages%2Fog-image-1500.gif'); } /* マウスホバー時にサムネも反応させる見た目調整 */ .entrylist-contents-title:hover ~ .entrylist-contents-body .entrylist-contents-thumb{ opacity: .90; }
人が「若い頃自転車のときポータブルCDプレイヤーで音楽聴いてると〜」みたいな話してて、まさか運転しながらイヤホンする人ではないと思いたい。自転車引きながらってことだよね?そう言ってくれ
好きなラジオパーソナリティが「若い頃は自転車のときポータブルCDプレイヤ..イヤホンつけて走ってるやつは山ほどいたよ。今もまだいるし。ただポータブルCDプレイヤーだとすぐ音飛びするし耳から外れるし自転車無理じゃねと思ってる。2024/02/06 23:04
ガコンってなって音が飛ぶって話をしていた
現代の物差しで裁くなってブコメ湧いてるけど今じゃなく2004年当時からありえない扱いだったんだが。だからショック受けてるんよ。なぜこちらが当時を知らない扱いやねん。あんたらの周りが民度悪かったからって責任転嫁に必死にならないで欲しい。
alpha_zero 「昔はそうだったんだ〜、今の感覚からだと信じられんけど」までは理解できる。昔は自転車通学の中学生くらいしか自転車ではヘルメットしてなかったし、色々「良くなってる」んだよ
言ってないことに対して「までは理解できる」って言われても困る。昔も許されてないし
import json import urllib.request # True にするとユーザー名を隠す hide_user = False # 以下を書き換える。sys.argv 使ってもいいんだけど url1 = "https://www.cygames.co.jp/news/id-23172/" url2 = "https://mtg60.com/archives/palworlddoujinsi.html" def get_bookmarks(url: str): req = urllib.request.Request(f"https://b.hatena.ne.jp/entry/json/{url}") with urllib.request.urlopen(req) as res: dict = json.loads(res.read()) user_comments = {} for bookmark in dict["bookmarks"]: if bookmark["comment"]: user_comments[bookmark["user"]] = bookmark["comment"] return user_comments b1 = get_bookmarks(url1) b2 = get_bookmarks(url2) common = set(b1.keys()).intersection(b2.keys()) print(f"[1] {url1}") print(f"[2] {url2}") print() for user in sorted(common): if hide_user: print(user[0] + "*" * (len(user) - 1)) else: print(user) print(f"[1] {b1[user]}") print(f"[2] {b2[user]}") print()
元増田の「信用できない」も「子供欲しいと思えるのは健常者らしい」も、そういう強者やマジョリティ側の感性が育まれないような自分の境遇への自嘲の一スタイルでしかない。
自分が直接突きつけられたわけですらないその程度のルサンチマンすらスルー出来ないって、どういう神経なんだろうね。
本来は「素直に羨ましがられ」るはずの自分が、得るべき尊敬や羨望の眼差しを得られないどころか冷笑され(たと感じ)て、権利の侵害でもされた気になったんだろうか。整形した人が思ったより美人ゆえの優遇がないことにキレてブスに当たってる図に似てるわ。
そもそも引用されてるバニラ餃子は発達ではなくアダルトチルドレンの話をしてる人だよね。本来アダルトチルドレンに対してノーマルな群を健常者とか定型って言い方はしないけど、子供を持つと自然に思えることを精神的が総合的に健常に発達した人の至る所として皮肉で表現してるわけよな。それをあおちゃんが発達と(本来の意味での)健常者に引きつけた時点で全く別の話になってると思うんだが。
皮肉としての健常者に反応したなら自意識過剰すぎるし健常者をくさされてカッとなるとかどんだけ広義の健常者としての自負心強いねん。
それを狭義かつ本来の意味の健常者の文脈に持ってきて、捻くれてる!素直に羨め!レッテル貼るな!ってキレ方がねじくれまくってるのは自分やん
子供が欲しいと素直に思える恵まれてる人生がそこまで後ろめたいのか?
これ思い出したhttps://note.com/ao8l22/n/n382fcb80113b インターネットの悪いところ..id:kou-qana 『「自分の子供に生まれてきてしまう人間」の気持ちを考ない人達のこと』という言い方は、「相手のことを考えない」プラス「自分の子供からすかれないような人」という意味を含んでおり、かなり攻撃的だよ。2024/01/05 00:10
子供を産むことは子供の気持ち無視してるのなんて当たり前じゃん。別に事実だし攻撃でもなんでもない。個人の営みのほとんどはエゴだし子供を作るのは最大のエゴ。全く悪いことでもないよ。エゴが悪いものなら人間の営み全否定やろ。子供の気持ちなんか無視して自分の幸せのために産む。そして子供が幸せになれるように全力を尽くす覚悟を持つのが当たり前だろ。
これ思い出したhttps://note.com/ao8l22/n/n382fcb80113b インターネットの悪いところ..<script src="https://b.st-hatena.com/js/comment-widget.js" charset="utf-8" async></script>red_kawa5373 id:kou-qana 『「自分の子供に生まれてきてしまう人間」の気持ちを考ない人達のこと』という言い方は、「相手のことを考えない」プラス「自分の子供からすかれないような人」という意味を含んでおり、かなり攻撃的だよ。2024/01/05 00:10
私は人生で2度、一人称を直した。 1度目は保育園のころ。「自分の名前+ちゃ..個人的にはいい年して親のことをママとか言ってる大人のほうが付き合い方を見直すほど恥ずかしいことだと思う。一人称はまあほどほどにどうでもいい。2024/01/04 01:16
うわあ
字が汚いだけでここまで人格否定されるとは字なんて金を払わんでも独習できるのに講座がどうたら。手本を真似するだけだよ。やる気無いでしょ?2023/12/30 05:05
こんます~
2023年も残すところわずかとなりましたが、皆様方におかれましてはいかがお過ごしでしょうか。
一年間の振り返りなどはされましたでしょうか。
2423件の日記を綴っており、
頂いた総ブクマ数は1893、総トラバ数は1060となりました。
本年も大変お世話になりました。
最期に、ポンコツの私がChatGPTの手となり足となり作成した増田集計コードを掲載します。
各日記のURL、タイトル、投稿日時、文字数、被ブクマ数、被トラバ数を取得しCSVファイルに出力するものです。
お暇な方はお使いください。
それではよいお年をお迎えください。
import requests from bs4 import BeautifulSoup import time import csv import os import re # ログインURL login_url = 'https://hatelabo.jp/login' # ログイン情報 login_data = { 'key': 'あなたのユーザ名またはメールアドレス', 'password': 'あなたのパスワード', 'mode': 'enter' } user_name = 'あなたのユーザ名' # User-Agent ヘッダー(例:Google Chrome) headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } # セッションを開始 session = requests.Session() # ログイン response = session.post(login_url, data=login_data, headers=headers) print('login',response.status_code) # 集計データ item = { 'url': '', # URL 'title': '', # タイトル 'datetime': '', # 投稿日時 'characters': '', # 文字数 'bookmark': '', # 被ブクマ数 'trackback': '', # 被トラバ数 } # CSVファイル名 output_file = 'masuda_output.csv' # CSVファイルが存在しない場合はヘッダーを書き込む if not os.path.exists(output_file): with open(output_file, 'w', newline='', encoding='utf-8') as file: writer = csv.DictWriter(file, fieldnames=item.keys()) writer.writeheader() # 集計 page_start = 1 page_end = 3 for i in range(page_start, page_end+1): # 待機 time.sleep(3) # 増田一覧取得 page = session.get(f'https://anond.hatelabo.jp/{user_name}/?page={i}') print(page.url) # 応答のHTMLをBeautifulSoupで解析 soup = BeautifulSoup(page.content, 'html.parser') entries = soup.find_all('div', class_='section') for entry in entries: header = entry.find('h3') timestamp = header.find('a').get('href')[1:] item['url'] = 'https://anond.hatelabo.jp/'+timestamp item['title'] = header.get_text()[:-1] item['datetime'] = f"{timestamp[0:4]}/{timestamp[4:6]}/{timestamp[6:8]} {timestamp[8:10]}:{timestamp[10:12]}" footersection_text = entry.find_all('p')[-2].get_text() item['characters'] = len(entry.find('p').get_text().strip(footersection_text)) item['trackback'] = int(re.search(r'92;((.*?)92;)', footersection_text).group(1) if re.search(r'92;((.*?)92;)', footersection_text) else '') if item['title'] == '■': item['title'] = entry.find('p').get_text().strip(footersection_text)[:35] # 待機 time.sleep(3) bookmark_page = session.get(f'https://b.hatena.ne.jp/entry/button/?url=https%3A%2F%2Fanond.hatelabo.jp%2F{timestamp}&amp;layout=basic-label-counter&amp;lang=ja') soup_b = BeautifulSoup(bookmark_page.content, 'html.parser') item['bookmark'] = int(soup_b.find('a', class_='count').get_text()) # CSVファイルに追記 with open(output_file, 'a', newline='', encoding='utf-8') as file: writer = csv.DictWriter(file, fieldnames=item.keys()) writer.writerow(item)
(追記)
わー。ごめんなさい。文字が何か所か変わっていました。
92; → \