designer_gen.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #!/usr/bin/python3
  2. import os
  3. import codecs
  4. import dataset
  5. def extract_comp(fname):
  6. resultstr=""
  7. fr=codecs.open(fname,'r','utf-8')
  8. lines=fr.readlines()
  9. inloop=False
  10. for l in lines:
  11. if inloop:
  12. if '<script async defer crossorigin="anonymous" src="https://connect.facebook' in l:
  13. # break
  14. #<script async="" defer="" crossorigin="anonymous" src="https://connect.facebook.net/zh_TW/sdk.js#xfbml=1&amp;version=v9.0" nonce=""></script>
  15. # if '/article>' in l:
  16. # resultstr+=l
  17. break
  18. resultstr+=l+"\n"
  19. # if 'class="dAbout"' in l and 'article' in l:
  20. if 'row justify-content-between mt-5' in l:
  21. inloop=True
  22. resultstr+=l+"\n"
  23. continue
  24. return resultstr
  25. #<script async defer crossorigin="anonymous" src="https://connect.facebook.net/
  26. def proc_file(fname,fname2,compcontent):
  27. fr=codecs.open(fname,'r','utf-8')
  28. fw=codecs.open(fname2,'w','utf-8')
  29. lines=fr.readlines()
  30. scriptflag=False
  31. for l in lines:
  32. # <div class="row mt-5" id="row">
  33. if 'div' in l and 'class' in l and 'row mt-5' in l and 'id="row"' in l:
  34. fw.write('<div class="row mt-5" id="row_company" style="display:none">\n')
  35. fw.write(compcontent)
  36. fw.write('</div>\n')
  37. fw.write('<div class="row mt-5" id="row_intro">\n')
  38. if 'nav-link' in l and '設計師作品' in l and 'class' in l:
  39. fw.write('<a class="nav-link " onclick="c_intro();">設計師作品</a>')
  40. continue
  41. if 'nav-link' in l and '設計師公司簡介' in l and 'class' in l:
  42. fw.write('<a class="nav-link " onclick="c_comp();">設計師公司簡介</a>')
  43. continue
  44. fw.write(l)
  45. if '</script>' in l and not scriptflag:
  46. scriptflag=True
  47. fw.write('\n <script async defer crossorigin="anonymous" src="https://connect.facebook.net/zh_TW/sdk.js#xfbml=1&version=v9.0" nonce="7TsDzQN7"></script> \n')
  48. fw.write("\n <script>")
  49. fw.write("function c_intro(){ \n")
  50. fw.write("var rintro= document.getElementById('row_intro'); \n")
  51. fw.write("var rcomp = document.getElementById('row_company'); \n")
  52. fw.write(' rintro.style.display="block"; \n')
  53. fw.write(' rcomp.style.display = "none"; \n')
  54. fw.write("} \n")
  55. fw.write("function c_comp(){ \n")
  56. fw.write("var rintro= document.getElementById('row_intro'); \n")
  57. fw.write("var rcomp = document.getElementById('row_company'); \n")
  58. fw.write(' rintro.style.display="none"; \n')
  59. fw.write(' rcomp.style.display = "block"; \n')
  60. fw.write("} </script> \n")
  61. #
  62. # print(lines)
  63. fr.close()
  64. fw.close()
  65. db = dataset.connect('mysql://hhh7796hhh:lYmWsu^ujcA1@hhh-v57-cluster.cluster-cmab1ctkglka.ap-northeast-2.rds.amazonaws.com:3306/xoops?charset=utf8mb4')
  66. dir_prefix='/var/www/jared-six/'
  67. cursor=db.query('SELECT hdesigner_id FROM xoops._hdesigner where onoff=1; ')
  68. for c in cursor:
  69. did=c['hdesigner_id']
  70. if did != 23:
  71. continue
  72. print(did)
  73. curdir=dir_prefix+str(did)
  74. if not os.path.exists(curdir):
  75. os.mkdir(curdir)
  76. os.chdir(curdir)
  77. os.system('curl https://hhh.com.tw/designers/cases/'+str(did)+'/1-page/new-sort/ -o orig.html')
  78. os.system('curl https://hhh.com.tw/designers/details/'+str(did)+'/ -o comp.html')
  79. result=extract_comp(curdir+"/comp.html")
  80. print(result)
  81. proc_file(curdir+"/orig.html",curdir+"/index.html",result)
  82. # break
  83. #for l in lst:
  84. # os.chdir(curdir)
  85. # os.system('curl https://hhh.com.tw/columns/detail/'+l+'/ > index.html')