Skip to content

Instantly share code, notes, and snippets.

@nrm176
Last active March 21, 2020 05:25
Show Gist options
  • Save nrm176/dcdfaa27115848e5d54c0da262bb43a8 to your computer and use it in GitHub Desktop.
Save nrm176/dcdfaa27115848e5d54c0da262bb43a8 to your computer and use it in GitHub Desktop.
covid-19

東京都防災ページより https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/index.html 新型コロナウイルスの患者発生状況に関連したリンクを取得する

Array.from(document.querySelector('dl.linkdate').querySelectorAll('ul.objectlink')).filter((e)=>{return e.querySelector('a').textContent.includes('新型コロナウイルスに関連した患者の発生について')}).map((e)=>{return {title: e.textContent , url:e.querySelector('a').href} })

Chrome Developer Toolで上記を実行。下記のような結果を得る。

[
  {
    "title": "\n\n(第99報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007506.html"
  },
  {
    "title": "\n\n(第97報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007504.html"
  },
  {
    "title": "\n\n(第92報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007487.html"
  },
  {
    "title": "\n\n(第91報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007485.html"
  },
  {
    "title": "\n\n(第86報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007480.html"
  },
  {
    "title": "\n\n(第85報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007479.html"
  },
  {
    "title": "\n\n(第84報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007478.html"
  },
  {
    "title": "\n\n(第82報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007474.html"
  },
  {
    "title": "\n\n(第79報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007470.html"
  },
  {
    "title": "\n\n(第77報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007468.html"
  },
  {
    "title": "\n\n(第75報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007465.html"
  },
  {
    "title": "\n\n(第74報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007464.html"
  },
  {
    "title": "\n\n(第71報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007459.html"
  },
  {
    "title": "\n\n(第68報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007449.html"
  },
  {
    "title": "\n\n(第65報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007434.html"
  },
  {
    "title": "\n\n(第53報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007406.html"
  },
  {
    "title": "\n\n(第52報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007405.html"
  },
  {
    "title": "\n\n(第40報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007386.html"
  },
  {
    "title": "\n\n(第37報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007381.html"
  },
  {
    "title": "\n\n(第29報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007368.html"
  },
  {
    "title": "\n\n(第28報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007367.html"
  },
  {
    "title": "\n\n(第27報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007366.html"
  },
  {
    "title": "\n\n(第25報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007355.html"
  },
  {
    "title": "\n\n(第24報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007348.html"
  },
  {
    "title": "\n\n(第20報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007334.html"
  },
  {
    "title": "\n\n(第19報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007333.html"
  },
  {
    "title": "\n\n(第17報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007331.html"
  },
  {
    "title": "\n\n(第15報)新型コロナウイルスに関連した患者の発生について(2月13日判明事案関連その(2))\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007328.html"
  },
  {
    "title": "\n\n(第14報)新型コロナウイルスに関連した患者の発生について(2月13日判明事案関連その(1))\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007327.html"
  },
  {
    "title": "\n\n(第11報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007323.html"
  },
  {
    "title": "\n\n(第1報)新型コロナウイルスに関連した患者の発生について\n\n",
    "url": "https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007264.html"
  }
]

第91報のURLより https://www.bousai.metro.tokyo.lg.jp/taisaku/saigai/1007261/1007485.html

下記を実行

Array.from(document.querySelectorAll('div#voice > table tr')).filter((e,idx)=>{return idx !=0}).map((e)=>{return Array.from(e.querySelectorAll('td')).map((e)=>{return e.textContent})}).map((e)=>{return {pid:e[0], age:e[1], gender: e[2], address:e[3], job:e[4], symptom:e[5], date:e[6], note:e[7].split('\n')} })
[
  {
    "pid": "91",
    "age": "40",
    "gender": "男性",
    "address": "都内",
    "job": "自営業",
    "symptom": "発熱、咳",
    "date": "3月8日",
    "note": [
      "3/15(日曜日)都内医療機関Aを受診、そのまま都内医療機関Bを紹介受診し、入院",
      "3/16(月曜日)※陽性判明"
    ]
  },
  {
    "pid": "92",
    "age": "60",
    "gender": "男性",
    "address": "都内",
    "job": "自営業",
    "symptom": "発熱",
    "date": "3月12日",
    "note": [
      "3/12(木曜日)~3/15(日曜日)自宅で仕事",
      "3/15(日曜日)発熱",
      "3/16(月曜日)都内医療機関C受診、そのまま都内医療機関Dを紹介受診(自家用車で移動)",
      "3/16(月曜日)※陽性判明"
    ]
  },
  {
    "pid": "93",
    "age": "50",
    "gender": "男性",
    "address": "都内",
    "job": "会社員",
    "symptom": "発熱、咳、倦怠感",
    "date": "3月7日",
    "note": [
      "3/7(土曜日)自宅療養",
      "3/8(日曜日)都内医療機関E受診",
      "3/9(月曜日)都内医療機関F受診",
      "3/10(火曜日)自宅療養",
      "3/11(水曜日)都内医療機関G受診",
      "3/12(木曜日)~3/13(金曜日)自宅療養",
      "3/14(土曜日)都内医療機関Gを受診、そのまま入院",
      "3/17(火曜日)陽性判明"
    ]
  },
  {
    "pid": "94",
    "age": "50",
    "gender": "男性",
    "address": "都内",
    "job": "会社員",
    "symptom": "発熱、咳、咽頭痛",
    "date": "3月10日",
    "note": [
      "3/13(金曜日)都内医療機関H受診",
      "3/17(火曜日)陽性判明"
    ]
  },
  {
    "pid": "95",
    "age": "60",
    "gender": "男性",
    "address": "都内",
    "job": "団体役員",
    "symptom": "発熱、倦怠感",
    "date": "3月14日",
    "note": [
      "3/14(土曜日)出勤(マスク着用、車利用)",
      "3/15(日曜日)都内を移動(マスク着用、自転車利用)",
      "3/16(月曜日)都内医療機関Iを受診し、入院",
      "3/17(火曜日)陽性判明"
    ]
  },
  {
    "pid": "96",
    "age": "40",
    "gender": "男性",
    "address": "都内",
    "job": "自営業",
    "symptom": "発熱",
    "date": "3月7日",
    "note": [
      "3/7(土曜日)~3/8(日曜日)自宅療養",
      "3/9(月曜日)都内医療機関Jを受診",
      "3/10(火曜日)出勤(自家用車利用)",
      "3/11(水曜日)都内医療機関Jを再診",
      "3/12(木曜日)~3/13(金曜日)自宅療養",
      "3/14(土曜日)都内医療機関Jを再診",
      "3/15(日曜日)自宅療養",
      "3/16(月曜日)検体採取、出勤(自家用車利用)",
      "3/17(火曜日)陽性判明、都内医療機関K入院"
    ]
  },
  {
    "pid": "97",
    "age": "40",
    "gender": "男性",
    "address": "都内",
    "job": "会社員",
    "symptom": "発熱、咳\n倦怠感",
    "date": "3月10日",
    "note": [
      "3/11(水曜日)出勤(マスク着用)",
      "3/12(木曜日)~3/13(金曜日)自宅療養",
      "3/14(土曜日)都内医療機関Lを受診、そのまま都内医療機関Mを紹介受診しそのまま入院",
      "3/17(火曜日)陽性確定"
    ]
  },
  {
    "pid": "98",
    "age": "50",
    "gender": "男性",
    "address": "都内",
    "job": "会社員",
    "symptom": "発熱",
    "date": "3月13日",
    "note": [
      "3/13(木曜日)帰宅後、発熱",
      "3/14(金曜日)都内医療機関Nを受診し、そのまま入院",
      "3/17(火曜日)陽性確定"
    ]
  },
  {
    "pid": "99",
    "age": "40",
    "gender": "男性",
    "address": "都内",
    "job": "会社員",
    "symptom": "発熱、咳\n倦怠感、咽頭痛",
    "date": "3月12日",
    "note": [
      "3/12(木曜日)~13(金曜日)都外滞在",
      "3/14(土曜日)帰宅(マスク着用し、飛行機利用)",
      "3/15(日曜日)都内医療機関O受診",
      "3/16(月曜日)自宅療養",
      "3/17(火曜日)陽性判明し、入院"
    ]
  },
  {
    "pid": "100",
    "age": "60",
    "gender": "男性",
    "address": "都内",
    "job": "会社員",
    "symptom": "発熱、咳\n倦怠感",
    "date": "3月8日",
    "note": [
      "3/8(日曜日)~3/9(月曜日)自宅療養",
      "3/10(火曜日)都内医療機関P受診。",
      "3/11(水曜日)~3/12(木曜日)自宅療養",
      "3/13(金曜日) 都内医療機関P再診。その後都内医療機関Qを紹介受診し、入院。",
      "3/17 陽性判明し、医療機関Rへ転院。"
    ]
  },
  {
    "pid": "101",
    "age": "50",
    "gender": "男性",
    "address": "都内",
    "job": "会社員",
    "symptom": "発熱、咳\n倦怠感",
    "date": "3月6日",
    "note": [
      "3/6(金曜日)自宅療養",
      "3/7(土曜日)都内医療機関Sを受診",
      "3/8(日曜日)~3/10(火曜日)自宅療養",
      "3/11(水曜日)都内医療機関S再診",
      "3/12(木曜日)~3/14(土曜日)自宅療養",
      "3/14(土曜日)自宅療養",
      "3/15(日曜日)都内医療機関S再診",
      "3/16(月曜日)自宅療養",
      "3/17(火曜日)陽性判明"
    ]
  },
  {
    "pid": "102",
    "age": "50",
    "gender": "女性",
    "address": "都内",
    "job": "パート\n従業員",
    "symptom": "発熱、咽頭痛",
    "date": "3月4日",
    "note": [
      "3/4(水曜日)自宅",
      "3/5(木曜日)都内を移動(自家用車利用)",
      "3/6(金曜日)出勤(自家用車利用)",
      "3/7(土曜日)~3/8(日曜日)自宅療養",
      "3/9(月曜日)~3/10(火曜日)出勤(公共交通機関利用)",
      "3/11(水曜日)都内を移動(自家用車利用)",
      "3/12(木曜日)自宅",
      "3/13(金曜日)出勤(公共交通機関利用)",
      "3/14(土曜日)~3/16(月曜日)自宅",
      "3/17(火曜日)陽性判明"
    ]
  }
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment