'' '
datのルール
<>はスペース1つ分
<br>は\n 相当
>>は>>
' ''
import urllib.request
import os
headers = {
"User-Agent" : "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0"
}
def getURLs( ) :
#URLとスレタイを取得するプログラム
subject = "https://n...content-available-to-author-only...h.net/news4vip/subject.txt"
request = urllib.request .Request ( url= subject, headers= headers) #
with urllib.request .urlopen ( request) as nep: #withを使うことでcloseを省略,接続
text = nep.read ( ) .decode ( 'cp932' ) #subject.txtはcp932なので
global url, title
url = [ f"https://n...content-available-to-author-only...h.net/news4vip/dat/{line.split('<', 1)[0].strip()}" for line in text.splitlines ( ) ] #subject.txtから一行ずつに分けて、<以前にあるものを取得してきている。
title = [ f"{line.split('>', 1)[-1].strip()}" for line in text.splitlines ( ) ] #textから一行ずつに分けて、>以降にあるものを取得してきている。
#print(url)
#print(title)
def getALL( ) :
getURLs( )
for thread_title, dat in zip( title, url) :
#print(thread_title,dat)#スレタイとURL
subject = dat
request = urllib.request .Request ( url= subject, headers= headers) #datとheaderのデータを入れる
with urllib.request .urlopen ( request) as nep: #withを使うことでcloseを省略,接続
text = nep.read ( ) .decode ( 'cp932' ) #datファイル読み込み。cp932?
lines = text.splitlines ( )
print( lines[ 0 ] )
#ファイルの書き込み
#with open('./hisshi.txt','w') as file:
with open( './' + str( ID) + '.txt' , 'a' ) as file:
#ここに文字列検索を入れる。もし、IDが見つかったら、スレタイとURLを記載する。textからIDが見つかったら、記入、改行する。
if str( ID) in lines:
file.write ( thread_title)
file.write ( dat+ str( '\n ' ) )
file.write ( lines)
print( lines)
file.write ( str( '\n ' ) )
#continue
#continue
ID = input( '記入方法は【ID:OOOOOOO】>>' )
getALL( )
'' '
終わったこと
subject.txtからdatを取得してURL化したurl配列が完成
ついでにスレタイもゲット
input関数でIDを取得する。
やること
IDを見つけたらその行を取得する。
<br>を¥nに変換
>>を>>に変換
最後にテキストデータとして書き出したい
' ''
JycnCmRhdOOBruODq+ODvOODqwo8PuOBr+OCueODmuODvOOCuTHjgaTliIYKPGJyPuOBr1xu55u45b2TCiZndDsmZ3Q744GvPj4KJycnCgppbXBvcnQgdXJsbGliLnJlcXVlc3QKaW1wb3J0IG9zCmhlYWRlcnMgPSB7CiAgICAgICAgIlVzZXItQWdlbnQiOiAiTW96aWxsYS81LjAgKFgxMTsgVWJ1bnR1OyBMaW51eCB4ODZfNjQ7IHJ2OjQ3LjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvNDcuMCIKICAgICAgICB9CgpkZWYgZ2V0VVJMcygpOgogICAgI1VSTOOBqOOCueODrOOCv+OCpOOCkuWPluW+l+OBmeOCi+ODl+ODreOCsOODqeODoAogICAgc3ViamVjdCA9ICJodHRwczovL24uLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmgubmV0L25ld3M0dmlwL3N1YmplY3QudHh0IgogICAgcmVxdWVzdCA9IHVybGxpYi5yZXF1ZXN0LlJlcXVlc3QodXJsPXN1YmplY3QsIGhlYWRlcnM9aGVhZGVycykjCgogICAgd2l0aCB1cmxsaWIucmVxdWVzdC51cmxvcGVuKHJlcXVlc3QpIGFzIG5lcDojd2l0aOOCkuS9v+OBhuOBk+OBqOOBp2Nsb3Nl44KS55yB55WlLOaOpee2mgogICAgICAgIHRleHQgPSBuZXAucmVhZCgpLmRlY29kZSgnY3A5MzInKSNzdWJqZWN0LnR4dOOBr2NwOTMy44Gq44Gu44GnCgogICAgICAgIGdsb2JhbCB1cmwsdGl0bGUKICAgICAgICB1cmwgPSBbZiJodHRwczovL24uLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmgubmV0L25ld3M0dmlwL2RhdC97bGluZS5zcGxpdCgnPCcsIDEpWzBdLnN0cmlwKCl9IiBmb3IgbGluZSBpbiB0ZXh0LnNwbGl0bGluZXMoKV0jc3ViamVjdC50eHTjgYvjgonkuIDooYzjgZrjgaTjgavliIbjgZHjgabjgIE85Lul5YmN44Gr44GC44KL44KC44Gu44KS5Y+W5b6X44GX44Gm44GN44Gm44GE44KL44CCCiAgICAgICAgdGl0bGUgPSBbZiJ7bGluZS5zcGxpdCgnPicsIDEpWy0xXS5zdHJpcCgpfSIgZm9yIGxpbmUgaW4gdGV4dC5zcGxpdGxpbmVzKCldI3RleHTjgYvjgonkuIDooYzjgZrjgaTjgavliIbjgZHjgabjgIE+5Lul6ZmN44Gr44GC44KL44KC44Gu44KS5Y+W5b6X44GX44Gm44GN44Gm44GE44KL44CCCgogICAgI3ByaW50KHVybCkKICAgICNwcmludCh0aXRsZSkKCmRlZiBnZXRBTEwoKToKICAgIGdldFVSTHMoKQogICAgZm9yIHRocmVhZF90aXRsZSwgZGF0IGluIHppcCh0aXRsZSwgdXJsKToKICAgICAgICAjcHJpbnQodGhyZWFkX3RpdGxlLGRhdCkj44K544Os44K/44Kk44GoVVJMCgogICAgICAgIHN1YmplY3QgPSBkYXQKICAgICAgICByZXF1ZXN0ID0gdXJsbGliLnJlcXVlc3QuUmVxdWVzdCh1cmw9c3ViamVjdCwgaGVhZGVycz1oZWFkZXJzKSNkYXTjgahoZWFkZXLjga7jg4fjg7zjgr/jgpLlhaXjgozjgosKCiAgICAgICAgd2l0aCB1cmxsaWIucmVxdWVzdC51cmxvcGVuKHJlcXVlc3QpIGFzIG5lcDojd2l0aOOCkuS9v+OBhuOBk+OBqOOBp2Nsb3Nl44KS55yB55WlLOaOpee2mgogICAgICAgICAgICB0ZXh0ID0gbmVwLnJlYWQoKS5kZWNvZGUoJ2NwOTMyJykjZGF044OV44Kh44Kk44Or6Kqt44G/6L6844G/44CCY3A5MzI/CiAgICAgICAgICAgIGxpbmVzID0gdGV4dC5zcGxpdGxpbmVzKCkKCiAgICAgICAgICAgIHByaW50KGxpbmVzWzBdKQogICAgICAgICAgICAj44OV44Kh44Kk44Or44Gu5pu444GN6L6844G/CiAgICAgICAgICAgICN3aXRoIG9wZW4oJy4vaGlzc2hpLnR4dCcsJ3cnKSBhcyBmaWxlOgogICAgICAgICAgICB3aXRoIG9wZW4oJy4vJytzdHIoSUQpKycudHh0JywnYScpIGFzIGZpbGU6CiAgICAgICAgICAgICPjgZPjgZPjgavmloflrZfliJfmpJzntKLjgpLlhaXjgozjgovjgILjgoLjgZfjgIFJROOBjOimi+OBpOOBi+OBo+OBn+OCieOAgeOCueODrOOCv+OCpOOBqFVSTOOCkuiomOi8ieOBmeOCi+OAgnRleHTjgYvjgolJROOBjOimi+OBpOOBi+OBo+OBn+OCieOAgeiomOWFpeOAgeaUueihjOOBmeOCi+OAggogICAgICAgICAgICAgICAgaWYgc3RyKElEKSBpbiBsaW5lczoKICAgICAgICAgICAgICAgICAgICBmaWxlLndyaXRlKHRocmVhZF90aXRsZSkKICAgICAgICAgICAgICAgICAgICBmaWxlLndyaXRlKGRhdCtzdHIoJ1xuJykpCiAgICAgICAgICAgICAgICAgICAgZmlsZS53cml0ZShsaW5lcykKICAgICAgICAgICAgICAgICAgICBwcmludChsaW5lcykKICAgICAgICAgICAgICAgICAgICBmaWxlLndyaXRlKHN0cignXG4nKSkKICAgICAgICAgICAgI2NvbnRpbnVlCiAgICAgICAgI2NvbnRpbnVlCgoKCgpJRCA9IGlucHV0KCfoqJjlhaXmlrnms5Xjga/jgJBJRDpPT09PT09P44CRPj4nKQoKZ2V0QUxMKCkKCicnJwrntYLjgo/jgaPjgZ/jgZPjgagKc3ViamVjdC50eHTjgYvjgolkYXTjgpLlj5blvpfjgZfjgaZVUkzljJbjgZfjgZ91cmzphY3liJfjgYzlrozmiJAK44Gk44GE44Gn44Gr44K544Os44K/44Kk44KC44Ky44OD44OICmlucHV06Zai5pWw44GnSUTjgpLlj5blvpfjgZnjgovjgIIKCuOChOOCi+OBk+OBqApJROOCkuimi+OBpOOBkeOBn+OCieOBneOBruihjOOCkuWPluW+l+OBmeOCi+OAggo8YnI+44KSwqVu44Gr5aSJ5o+bCiZndDsmZ3Q744KSPj7jgavlpInmj5sK5pyA5b6M44Gr44OG44Kt44K544OI44OH44O844K/44Go44GX44Gm5pu444GN5Ye644GX44Gf44GECgonJycK