被はてブのリスト出力

以前作ってた三日はてブの動く版w
絵文字は消える。文字コード昔仕事で使ったのによくわからんw
スター付けたかどうかのところは今のところとれなくなってる。
よって「はてなID」は何入れても同じ罠w

日付でソートしようと思ったらドはまりしそうなので、ひとまずここで上げておく

# -*- coding:utf-8 -*-
import urllib
import codecs
import requests
import json
from lxml import etree
import datetime as dt
def HtmlOutput(bmInfos):
#ファイルを開く
f = open('被はてブlist.html', 'wt')
#最低限のタグ書き込み
f.write('<html><body><table border="1" style="border-collapse: collapse">')
#ヘッダ
f.write('<tr><th>★</th><th>URL</th><th>ユーザー</th><th>日付</th><th>コメント</th>\n')
#ノードごとに書き込む
for b in bmInfos:
bUrl = b['url'].replace("http://", "")
bUrl = b['url'].replace("https://", "s/")
bUrl = urllib.parse.quote(bUrl)
f.write('<tr>')
f.write('<td>')
if b['star']==1:
f.write('★')
f.write('</td>')
try:
f.write('<td><a href="http://b.hatena.ne.jp/entry/' + bUrl + '" target="_blank">' + b['url'] + '</a></td><td>' + \
b['user'] + '</td><td>' + b['date'].strftime("%Y/%m/%d") + '</td><td>' + b['comment'] + '</td>')
except:
#絵文字があったらどうにかする(消える)
s = '<td><a href="http://b.hatena.ne.jp/entry/' + bUrl + '" target="_blank">' + b['url'] + '</a></td><td>' + \
b['user'] + '</td><td>' + b['date'].strftime("%Y/%m/%d") + '</td><td>' + b['comment'] + '</td>'
b = s.encode('cp932', "ignore")
f.write(b.decode('cp932'))
f.write('</tr>\n')
#後処理
f.write('</table></body></html>')
f.close()
#####死んどる#####
def  GetImgIndex(time, eid, user):
#URL作成
url = "http://b.hatena.ne.jp/entry/" + str(eid) + "/comment/"
url = url + user
url = urllib.parse.quote(url)
headers = {'User-Agent': 'Sample Header'}
r = requests.get("http://s.hatena.com/entry.json?uri=" + url, headers=headers).json()
for st in r['entries']:
for st2 in st['stars']:
if st2['name'] == myId:
return 1
return 0
##########################################
#検索したいurl: 
myStr="https://elve.hatenadiary.jp/"
#あなたのはてなID
myId = "elve"
#大元のURL読み込み(はてブをURLで検索した結果)rss表示
r = requests.get("http://b.hatena.ne.jp/search/text?safe=off&q=" + urllib.parse.quote(myStr) + "&users=1&mode=rss").text
r = r.encode('utf-8')
root = etree.fromstring(r)
#各記事のノードの束取得
links = root.findall(".//{http://purl.org/rss/1.0/}link")
#データ空に
bmInfos = []
#ノードごとに処理
for link in  links:
if link != links[0]:
#適当にヘッダ設定
headers = {'User-Agent': 'Sample Header'}
#各記事のブクマページ取得
json = requests.get("http://b.hatena.ne.jp/entry/jsonlite/?url=" + link.text, headers=headers).json()
try:
#ブクマごとの処理
for bm in json['bookmarks']:
#タイムスタンプ               
tdatetime = dt.datetime.strptime(bm['timestamp'], '%Y/%m/%d %H:%M')
#スターなし(現在機能していない)|ブクマページURL|ユーザー名|日付|コメント
bmInfo={"star":0,"url":json['url'],"user":bm['user'], "date":tdatetime,"comment":bm['comment']}
#死んどる
#bmInfo["star"] = GetImgIndex(tdatetime, json['eid'], bm['user'])
#データ追加
bmInfos.append(bmInfo)
except:
#不穏な動き
print("ERR!!")
break
#データをHTMLに出力
HtmlOutput(bmInfos)
print("END")

出力

f:id:elve:20200301155204p:plain

どのくらい面白かった?

星を押して送信してね

平均 0 / 5. Vote count: 0

是非フォローしてください

最新の情報をお伝えします

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です