fork download
  1. '''
  2. datのルール
  3. <>はスペース1つ分
  4. <br>は\n相当
  5. &gt;&gt;は>>
  6. '''
  7.  
  8. import urllib.request
  9. import os
  10. headers = {
  11. "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0"
  12. }
  13.  
  14. def getURLs():
  15. #URLとスレタイを取得するプログラム
  16. subject = "https://n...content-available-to-author-only...h.net/news4vip/subject.txt"
  17. request = urllib.request.Request(url=subject, headers=headers)#
  18.  
  19. with urllib.request.urlopen(request) as nep:#withを使うことでcloseを省略,接続
  20. text = nep.read().decode('cp932')#subject.txtはcp932なので
  21.  
  22. global url,title
  23. 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から一行ずつに分けて、<以前にあるものを取得してきている。
  24. title = [f"{line.split('>', 1)[-1].strip()}" for line in text.splitlines()]#textから一行ずつに分けて、>以降にあるものを取得してきている。
  25.  
  26. #print(url)
  27. #print(title)
  28.  
  29. def getALL():
  30. getURLs()
  31. for thread_title, dat in zip(title, url):
  32. #print(thread_title,dat)#スレタイとURL
  33.  
  34. subject = dat
  35. request = urllib.request.Request(url=subject, headers=headers)#datとheaderのデータを入れる
  36.  
  37. with urllib.request.urlopen(request) as nep:#withを使うことでcloseを省略,接続
  38. text = nep.read().decode('cp932')#datファイル読み込み。cp932?
  39. lines = text.splitlines()
  40.  
  41. print(lines[0])
  42. #ファイルの書き込み
  43. #with open('./hisshi.txt','w') as file:
  44. with open('./'+str(ID)+'.txt','a') as file:
  45. #ここに文字列検索を入れる。もし、IDが見つかったら、スレタイとURLを記載する。textからIDが見つかったら、記入、改行する。
  46. if str(ID) in lines:
  47. file.write(thread_title)
  48. file.write(dat+str('\n'))
  49. file.write(lines)
  50. print(lines)
  51. file.write(str('\n'))
  52. #continue
  53. #continue
  54.  
  55.  
  56.  
  57.  
  58. ID = input('記入方法は【ID:OOOOOOO】>>')
  59.  
  60. getALL()
  61.  
  62. '''
  63. 終わったこと
  64. subject.txtからdatを取得してURL化したurl配列が完成
  65. ついでにスレタイもゲット
  66. input関数でIDを取得する。
  67.  
  68. やること
  69. IDを見つけたらその行を取得する。
  70. <br>を¥nに変換
  71. &gt;&gt;を>>に変換
  72. 最後にテキストデータとして書き出したい
  73.  
  74. '''
  75.  
Runtime error #stdin #stdout #stderr 0.02s 27704KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
  File "./prog.py", line 23
    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から一行ずつに分けて、<以前にあるものを取得してきている。
                                                                             ^
SyntaxError: invalid syntax