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 = "http://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"http://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.  
  32. for thread_title, dat in zip(title, url):
  33. #print(thread_title,dat)#スレタイとURL
  34.  
  35. subject = dat
  36. request = urllib.request.Request(url=subject, headers=headers)#datとheaderのデータを入れる
  37.  
  38. with urllib.request.urlopen(request) as nep:#withを使うことでcloseを省略,接続
  39. text = nep.read().decode('cp932')#datファイル読み込み。cp932?
  40. lines = text.splitlines()
  41.  
  42. #ファイルの書き込み
  43. #with open('./hisshi.txt','w') as file:
  44. with open('./test.txt','a') as file:
  45. #ここに文字列検索を入れる。もし、IDが見つかったら、スレタイとURLを記載する。textからIDが見つかったら、記入、改行する。
  46. for line in lines:
  47. if line.find(ID) != -1:
  48. file.write(thread_title)
  49. file.write(dat+str('\n'))
  50. file.write(line)
  51. print(line)
  52. file.write(str('\n'))
  53. #continue
  54. #continue
  55.  
  56.  
  57.  
  58.  
  59. ID = input('記入方法は【ID:OOOOOOO】>>')
  60.  
  61. getALL()
  62.  
  63. '''
  64. 終わったこと
  65. subject.txtからdatを取得してURL化したurl配列が完成
  66. ついでにスレタイもゲット
  67. input関数でIDを取得する。
  68.  
  69. やること
  70. IDを見つけたらその行を取得する。
  71. <br>を¥nに変換
  72. &gt;&gt;を>>に変換
  73. 最後にテキストデータとして書き出したい
  74.  
  75. '''
  76.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Traceback (most recent call last):
  File "/usr/lib/python3.5/py_compile.py", line 125, in compile
    _optimize=optimize)
  File "<frozen importlib._bootstrap_external>", line 735, in source_to_code
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "./prog.py", line 23
    url = [f"http://next2ch.net/news4vip/dat/{line.split('<', 1)[0].strip()}" for line in text.splitlines()]#subject.txtから一行ずつに分けて、<以前にあるものを取得してきている。
                                                                            ^
SyntaxError: invalid syntax

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3.5/py_compile.py", line 129, in compile
    raise py_exc
py_compile.PyCompileError:   File "./prog.py", line 23
    url = [f"http://next2ch.net/news4vip/dat/{line.split('<', 1)[0].strip()}" for line in text.splitlines()]#subject.txtから一行ずつに分けて、<以前にあるものを取得してきている。
                                                                            ^
SyntaxError: invalid syntax

stdout
Standard output is empty