5 Commits

Author SHA1 Message Date
6153b70c1e new way of scraping 2025-03-24 20:24:30 +01:00
47134525b8 save work 2025-03-24 19:00:26 +01:00
fe177abd85 Merge branch 'main' of https://git.yasue.org/ken/tripadviser_scraper 2025-03-24 15:27:52 +01:00
79ea65c74b save changes 2025-03-24 15:27:16 +01:00
1ffea0f61f auto scroll 2025-03-24 06:57:25 +01:00
5 changed files with 929 additions and 93 deletions

View File

@ -1,11 +1,4 @@
rank,Latitude,Longitude,Name of City,Country,2021 Population,2020 Population,Growth,Population Difference,Population Change rank,Latitude,Longitude,Name of City,Country,2021 Population,2020 Population,Growth,Population Difference,Population Change
17,6.4550575,3.3941795,Lagos,Nigeria,14862111,14368332,0.0344,493779,grew
18,14.5907332,120.9809674,Manila,Philippines,14158573,13923452,0.0169,235121,grew
19,39.0856735,117.1951073,Tianjin,China,13794450,13589078,0.0151,205372,grew
20,23.1301964,113.2592945,Guangzhou,China,13635397,13301532,0.0251,333865,grew
21,-22.9110137,-43.2093727,Rio de Janeiro,Brazil,13544462,13458075,0.0064,86387,grew
22,31.5656822,74.3141829,Lahore,Pakistan,13095166,12642423,0.0358,452743,grew
23,12.9767936,77.590082,Bangalore,India,12764935,12326532,0.0356,438403,grew
24,55.7504461,37.6174943,Moscow,Russia,12593252,12537954,0.0044,55298,grew 24,55.7504461,37.6174943,Moscow,Russia,12593252,12537954,0.0044,55298,grew
25,22.555454,114.0543297,Shenzhen,China,12591696,12356820,0.019,234876,grew 25,22.555454,114.0543297,Shenzhen,China,12591696,12356820,0.019,234876,grew
26,13.0836939,80.270186,Chennai,India,11235018,10971108,0.0241,263910,grew 26,13.0836939,80.270186,Chennai,India,11235018,10971108,0.0241,263910,grew

1 rank Latitude Longitude Name of City Country 2021 Population 2020 Population Growth Population Difference Population Change
17 6.4550575 3.3941795 Lagos Nigeria 14862111 14368332 0.0344 493779 grew
18 14.5907332 120.9809674 Manila Philippines 14158573 13923452 0.0169 235121 grew
19 39.0856735 117.1951073 Tianjin China 13794450 13589078 0.0151 205372 grew
20 23.1301964 113.2592945 Guangzhou China 13635397 13301532 0.0251 333865 grew
21 -22.9110137 -43.2093727 Rio de Janeiro Brazil 13544462 13458075 0.0064 86387 grew
22 31.5656822 74.3141829 Lahore Pakistan 13095166 12642423 0.0358 452743 grew
23 12.9767936 77.590082 Bangalore India 12764935 12326532 0.0356 438403 grew
2 24 55.7504461 37.6174943 Moscow Russia 12593252 12537954 0.0044 55298 grew
3 25 22.555454 114.0543297 Shenzhen China 12591696 12356820 0.019 234876 grew
4 26 13.0836939 80.270186 Chennai India 11235018 10971108 0.0241 263910 grew

View File

@ -2096,3 +2096,717 @@ City,Website URL,Email
"Manila,"http://www.bahaytsinoy.org/","null" "Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph" "Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null" "Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/#page=page-1","null"
"Manila,"https://museosanagustin.com/","null"
"Manila,"https://www.nationalmuseum.gov.ph/our-museums/national-museum-of-natural-history/","null"
"Manila,"https://www.facebook.com/nationalmuseumofthephilippines/","null"
"Manila,"https://www.facebook.com/museofilipino","flowerstoriesweddings@gmail.com"
"Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/index.html#page=page-1","null"
"Manila,"http://www.museopambata.org/","null"
"Manila,"http://www.mcadmanila.org.ph/","mcad@benilde.edu.ph"
"Manila,"http://www.facebook.com/pages/Intramuros-Rizal-Bagumbayan-Light-Sound-Museum/130520447058610","null"
"Manila,"http://www.facebook.com/SilahisCenter/","export@silahis.com"
"Manila,"https://www.facebook.com/ChinatownMuseum/","chinatownmuseumph@gmail.com"
"Manila,"null","null"
"Manila,"http://www.travelsmart.net/article/105434/","null"
"Manila,"http://www.facebook.com/manilaclocktowermuseum","null"
"Manila,"http://ustmuseum.ust.edu.ph/","museum@mnl.ust.edu.ph"
"Manila,"null","null"
"Manila,"null","null"
"Manila,"http://www.nationalmuseum.gov.ph/#page=page-1","null"
"Manila,"https://museosanagustin.com/","null"
"Manila,"https://www.nationalmuseum.gov.ph/our-museums/national-museum-of-natural-history/","null"
"Manila,"https://www.facebook.com/nationalmuseumofthephilippines/","null"
"Manila,"https://www.facebook.com/museofilipino","flowerstoriesweddings@gmail.com"
"Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/index.html#page=page-1","null"
"Manila,"http://www.museopambata.org/","null"
"Manila,"http://www.mcadmanila.org.ph/","mcad@benilde.edu.ph"
"Manila,"http://www.facebook.com/pages/Intramuros-Rizal-Bagumbayan-Light-Sound-Museum/130520447058610","null"
"Manila,"http://www.facebook.com/SilahisCenter/","export@silahis.com"
"Manila,"https://www.facebook.com/ChinatownMuseum/","chinatownmuseumph@gmail.com"
"Manila,"null","null"
"Manila,"http://www.travelsmart.net/article/105434/","null"
"Manila,"http://www.facebook.com/manilaclocktowermuseum","null"
"Manila,"http://ustmuseum.ust.edu.ph/","museum@mnl.ust.edu.ph"
"Manila,"null","null"
"Manila,"null","null"
"Manila,"http://www.nationalmuseum.gov.ph/#page=page-1","null"
"Manila,"https://museosanagustin.com/","null"
"Manila,"https://www.nationalmuseum.gov.ph/our-museums/national-museum-of-natural-history/","null"
"Manila,"https://www.facebook.com/nationalmuseumofthephilippines/","null"
"Manila,"https://www.facebook.com/museofilipino","flowerstoriesweddings@gmail.com"
"Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/index.html#page=page-1","null"
"Manila,"http://www.museopambata.org/","null"
"Manila,"http://www.mcadmanila.org.ph/","mcad@benilde.edu.ph"
"Manila,"http://www.facebook.com/pages/Intramuros-Rizal-Bagumbayan-Light-Sound-Museum/130520447058610","null"
"Manila,"http://www.facebook.com/SilahisCenter/","export@silahis.com"
"Manila,"https://www.facebook.com/ChinatownMuseum/","chinatownmuseumph@gmail.com"
"Manila,"null","null"
"Manila,"http://www.travelsmart.net/article/105434/","null"
"Manila,"http://www.facebook.com/manilaclocktowermuseum","null"
"Manila,"http://ustmuseum.ust.edu.ph/","museum@mnl.ust.edu.ph"
"Manila,"null","null"
"Manila,"null","null"
"Manila,"http://www.nationalmuseum.gov.ph/#page=page-1","null"
"Manila,"https://museosanagustin.com/","null"
"Manila,"https://www.nationalmuseum.gov.ph/our-museums/national-museum-of-natural-history/","null"
"Manila,"https://www.facebook.com/nationalmuseumofthephilippines/","null"
"Manila,"https://www.facebook.com/museofilipino","flowerstoriesweddings@gmail.com"
"Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/index.html#page=page-1","null"
"Manila,"http://www.museopambata.org/","null"
"Manila,"http://www.mcadmanila.org.ph/","mcad@benilde.edu.ph"
"Manila,"http://www.facebook.com/pages/Intramuros-Rizal-Bagumbayan-Light-Sound-Museum/130520447058610","null"
"Manila,"http://www.facebook.com/SilahisCenter/","export@silahis.com"
"Manila,"https://www.facebook.com/ChinatownMuseum/","chinatownmuseumph@gmail.com"
"Manila,"null","null"
"Manila,"http://www.travelsmart.net/article/105434/","null"
"Manila,"http://www.facebook.com/manilaclocktowermuseum","null"
"Manila,"http://ustmuseum.ust.edu.ph/","museum@mnl.ust.edu.ph"
"Manila,"null","null"
"Manila,"null","null"
"Manila,"http://www.nationalmuseum.gov.ph/#page=page-1","null"
"Manila,"https://museosanagustin.com/","null"
"Manila,"https://www.nationalmuseum.gov.ph/our-museums/national-museum-of-natural-history/","null"
"Manila,"https://www.facebook.com/nationalmuseumofthephilippines/","null"
"Manila,"https://www.facebook.com/museofilipino","flowerstoriesweddings@gmail.com"
"Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/index.html#page=page-1","null"
"Manila,"http://www.museopambata.org/","null"
"Manila,"http://www.mcadmanila.org.ph/","mcad@benilde.edu.ph"
"Manila,"http://www.facebook.com/pages/Intramuros-Rizal-Bagumbayan-Light-Sound-Museum/130520447058610","null"
"Manila,"http://www.facebook.com/SilahisCenter/","export@silahis.com"
"Manila,"https://www.facebook.com/ChinatownMuseum/","chinatownmuseumph@gmail.com"
"Manila,"null","null"
"Manila,"http://www.travelsmart.net/article/105434/","null"
"Manila,"http://www.facebook.com/manilaclocktowermuseum","null"
"Manila,"http://ustmuseum.ust.edu.ph/","museum@mnl.ust.edu.ph"
"Manila,"null","null"
"Manila,"null","null"
"Manila,"http://www.nationalmuseum.gov.ph/#page=page-1","null"
"Manila,"https://museosanagustin.com/","null"
"Manila,"https://www.nationalmuseum.gov.ph/our-museums/national-museum-of-natural-history/","null"
"Manila,"https://www.facebook.com/nationalmuseumofthephilippines/","null"
"Manila,"https://www.facebook.com/museofilipino","flowerstoriesweddings@gmail.com"
"Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/index.html#page=page-1","null"
"Manila,"http://www.museopambata.org/","null"
"Manila,"http://www.mcadmanila.org.ph/","mcad@benilde.edu.ph"
"Manila,"http://www.facebook.com/pages/Intramuros-Rizal-Bagumbayan-Light-Sound-Museum/130520447058610","null"
"Manila,"http://www.facebook.com/SilahisCenter/","export@silahis.com"
"Manila,"https://www.facebook.com/ChinatownMuseum/","chinatownmuseumph@gmail.com"
"Manila,"null","null"
"Manila,"http://www.travelsmart.net/article/105434/","null"
"Manila,"http://www.facebook.com/manilaclocktowermuseum","null"
"Manila,"http://ustmuseum.ust.edu.ph/","museum@mnl.ust.edu.ph"
"Manila,"null","null"
"Manila,"null","null"
"Manila,"http://www.nationalmuseum.gov.ph/#page=page-1","null"
"Manila,"https://museosanagustin.com/","null"
"Manila,"https://www.nationalmuseum.gov.ph/our-museums/national-museum-of-natural-history/","null"
"Manila,"null","null"
"Manila,"null","null"
"Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/index.html#page=page-1","null"
"Manila,"http://www.museopambata.org/","null"
"Manila,"http://www.mcadmanila.org.ph/","mcad@benilde.edu.ph"
"Manila,"http://www.facebook.com/pages/Intramuros-Rizal-Bagumbayan-Light-Sound-Museum/130520447058610","null"
"Manila,"http://www.facebook.com/SilahisCenter/","export@silahis.com"
"Manila,"https://www.facebook.com/ChinatownMuseum/","chinatownmuseumph@gmail.com"
"Manila,"null","null"
"Manila,"http://www.travelsmart.net/article/105434/","null"
"Manila,"http://www.facebook.com/manilaclocktowermuseum","null"
"Manila,"http://ustmuseum.ust.edu.ph/","museum@mnl.ust.edu.ph"
"Manila,"null","null"
"Manila,"null","null"
"Manila,"http://www.nationalmuseum.gov.ph/#page=page-1","null"
"Manila,"https://museosanagustin.com/","null"
"Manila,"https://www.nationalmuseum.gov.ph/our-museums/national-museum-of-natural-history/","null"
"Manila,"https://www.facebook.com/nationalmuseumofthephilippines/","null"
"Manila,"https://www.facebook.com/museofilipino","flowerstoriesweddings@gmail.com"
"Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/index.html#page=page-1","null"
"Manila,"http://www.museopambata.org/","null"
"Manila,"http://www.mcadmanila.org.ph/","mcad@benilde.edu.ph"
"Manila,"http://www.facebook.com/pages/Intramuros-Rizal-Bagumbayan-Light-Sound-Museum/130520447058610","null"
"Manila,"http://www.facebook.com/SilahisCenter/","export@silahis.com"
"Manila,"https://www.facebook.com/ChinatownMuseum/","chinatownmuseumph@gmail.com"
"Manila,"null","null"
"Manila,"http://www.travelsmart.net/article/105434/","null"
"Manila,"http://www.facebook.com/manilaclocktowermuseum","null"
"Manila,"http://ustmuseum.ust.edu.ph/","museum@mnl.ust.edu.ph"
"Manila,"null","null"
"Manila,"null","null"
"Manila,"http://www.nationalmuseum.gov.ph/#page=page-1","null"
"Manila,"https://museosanagustin.com/","null"
"Manila,"https://www.nationalmuseum.gov.ph/our-museums/national-museum-of-natural-history/","null"
"Manila,"https://www.facebook.com/nationalmuseumofthephilippines/","null"
"Manila,"https://www.facebook.com/museofilipino","flowerstoriesweddings@gmail.com"
"Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/index.html#page=page-1","null"
"Manila,"http://www.museopambata.org/","null"
"Manila,"http://www.mcadmanila.org.ph/","mcad@benilde.edu.ph"
"Manila,"http://www.facebook.com/pages/Intramuros-Rizal-Bagumbayan-Light-Sound-Museum/130520447058610","null"
"Manila,"http://www.facebook.com/SilahisCenter/","export@silahis.com"
"Manila,"https://www.facebook.com/ChinatownMuseum/","chinatownmuseumph@gmail.com"
"Manila,"null","null"
"Manila,"http://www.travelsmart.net/article/105434/","null"
"Manila,"http://www.facebook.com/manilaclocktowermuseum","null"
"Manila,"http://ustmuseum.ust.edu.ph/","museum@mnl.ust.edu.ph"
"Manila,"null","null"
"Manila,"null","null"
"Manila,"http://www.nationalmuseum.gov.ph/#page=page-1","null"
"Manila,"https://museosanagustin.com/","null"
"Manila,"https://www.nationalmuseum.gov.ph/our-museums/national-museum-of-natural-history/","null"
"Manila,"https://www.facebook.com/nationalmuseumofthephilippines/","null"
"Manila,"https://www.facebook.com/museofilipino","flowerstoriesweddings@gmail.com"
"Manila,"http://www.bahaytsinoy.org/","null"
"Manila,"http://malacanang.gov.ph/","pml@malacanang.gov.ph"
"Manila,"http://intramuros.gov.ph/","null"
"Manila,"http://www.nationalmuseum.gov.ph/index.html#page=page-1","null"
"Manila,"http://www.museopambata.org/","null"
"Manila,"http://www.mcadmanila.org.ph/","mcad@benilde.edu.ph"
"Manila,"http://www.facebook.com/pages/Intramuros-Rizal-Bagumbayan-Light-Sound-Museum/130520447058610","null"
"Manila,"http://www.facebook.com/SilahisCenter/","export@silahis.com"
"Manila,"https://www.facebook.com/ChinatownMuseum/","chinatownmuseumph@gmail.com"
"Manila,"null","null"
"Manila,"http://www.travelsmart.net/article/105434/","null"
"Manila,"http://www.facebook.com/manilaclocktowermuseum","null"
"Manila,"http://ustmuseum.ust.edu.ph/","museum@mnl.ust.edu.ph"
"Manila,"null","null"
"Manila,"null","null"
"Tianjin,"http://www.tjbwg.com/","tjbwg_xxzx@126.com"
"Tianjin,"null","null"
"Tianjin,"http://www.tjnhm.org/","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"https://guojiahaiyang.com/","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"http://www.mocf.org.cn/","lms@mocf.org.cn"
"Tianjin,"http://www.bhwhzx.cn/","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"http://www.tjmodernmuseum.org/","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","1192721748@qq.com"
"Tianjin,"http://www.tpeh.net/","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Tianjin,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"http://www.eguangzhou.gov.cn/2018-09/07/c_269272.htm","null"
"Guangzhou,"http://www.gdmuseum.com/","null"
"Guangzhou,"http://www.guangzhoumuseum.cn/main.asp","guangzhoubwg@126.com"
"Guangzhou,"http://www.gdsc.cn/","null"
"Guangzhou,"http://www.gdmoa.org/","info@gdmon"
"Guangzhou,"null","null"
"Guangzhou,"http://www.gzam.com.cn/","gzam2005@126.com"
"Guangzhou,"http://theorientalmuseum.org/","dfbwg@qq.com"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"http://www.zhujiangbeer.com/qyzx/qywh/bwg/","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"http://www.gdhqbwg.com/","null"
"Guangzhou,"http://www.gemg1959.cn/","null"
"Guangzhou,"http://luxun.chinaspirit.net.cn/spjj.htm","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"http://www.xhgmjng.com/","null"
"Guangzhou,"null","null"
"Guangzhou,"http://www.newsgd.com/node_99363c4f3b/6d0d63c34a.shtml","null"
"Guangzhou,"http://www.leonacraig.com/","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"http://www.gzhsmuseum.com/","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","vip@cqvip.com"
"Guangzhou,"null","null"
"Guangzhou,"http://www.whbzt.com/","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Guangzhou,"null","null"
"Rio de Janeiro,"http://www.museudoamanha.org.br/","contato@museudoamanha.org.br"
"Rio de Janeiro,"http://culturabancodobrasil.com.br/portal/rio-de-janeiro/","ccbbrio@bb.com.br"
"Rio de Janeiro,"http://www.aquariomarinhodorio.com.br/","contato@aquariomarinhodorio.com.br"
"Rio de Janeiro,"http://www.mhexfc.eb.mil.br/","null"
"Rio de Janeiro,"http://mhn.museus.gov.br/","faleconosco.mhn@museus.gov.br"
"Rio de Janeiro,"https://museudeartedorio.org.br/","null"
"Rio de Janeiro,"http://museudarepublica.museus.gov.br/","MR@museus.gov.br"
"Rio de Janeiro,"https://www.gov.br/museus/pt-br/museus-ibram/mnba","MNBA@museus.gov.br"
"Rio de Janeiro,"http://ims.com.br/unidade/rio-de-janeiro/","imsrj@ims.com.br"
"Rio de Janeiro,"http://museudarepublica.museus.gov.br/","null"
"Rio de Janeiro,"http://www2.fab.mil.br/musal","musal@musal.aer.mil.br"
"Rio de Janeiro,"http://www.mam.rio/","comunicacao@mam.rio"
"Rio de Janeiro,"http://museuscastromaya.com.br/","chacara@museuscastromaya.com.br"
"Rio de Janeiro,"http://www.marinha.mil.br/dphdm/espaco-cultural-da-marinha","faleconosco@dphdm.mar.mil.br"
"Rio de Janeiro,"http://www.museudopontal.org.br/","institucional@museudopontal.org.br"
"Rio de Janeiro,"http://www.casaruibarbosa.gov.br/","museu@rb.gov.br"
"Rio de Janeiro,"http://www.crab.sebrae.com.br/","crab@rj.sebrae.com.br"
"Rio de Janeiro,"http://www.caixacultural.com.br/","null"
"Rio de Janeiro,"http://www.flamengo.com.br/museu-do-flamengo-e-tour-da-gavea-","null"
"Rio de Janeiro,"http://outeirodagloria.org.br/","null"
"Rio de Janeiro,"https://www.facebook.com/1897719023853433","null"
"Rio de Janeiro,"http://www.museudefavela.org/","querovisitar@museudefavela.org"
"Rio de Janeiro,"http://www.alerj.rj.gov.br/","null"
"Rio de Janeiro,"http://www.museusdorio.com.br/joomla/index.php?option=com_k2&view=item&id=49:complexo-cultural-da-marinha-museu-naval-sede-da-dphdm","secon@dohdm.mar.mil.br"
"Rio de Janeiro,"http://www.museunaif.com/","mian@museunaif.com.br"
"Rio de Janeiro,"https://www.facebook.com/191424130887852","null"
"Rio de Janeiro,"http://www.fabricabhering.com/","null"
"Rio de Janeiro,"http://www.museuscastromaya.com.br/acude.htm","MDAC@museus.gov.br"
"Rio de Janeiro,"http://www.oifuturo.org.br/","null"
"Rio de Janeiro,"http://www.mar.mil.br/dphdm/riachu/riachu.htm","null"
"Rio de Janeiro,"http://www.mnmsgm.ensino.eb.br/","comsoc.mnmsgm@hotmail.com"
"Rio de Janeiro,"http://www.planetariodorio.com.br/","contato@planeta.rio"
"Rio de Janeiro,"http://www.museudavida.fiocruz.br/","museudavida@fiocruz.br"
"Rio de Janeiro,"http://www.mast.br/","null"
"Rio de Janeiro,"http://cidadecopacabana.com.br/","null"
"Rio de Janeiro,"http://www.fortedecopacabana.com/mmcl","mmcl@fortedecopacabana.com"
"Rio de Janeiro,"http://www.casadeculturalauraalvim.rj.gov.br/","null"
"Rio de Janeiro,"http://www.firjan.com.br/firjan/empresas/competitividade-empresarial/casa-firjan/quem-somos/","casafirjan@firjan.com.br"
"Rio de Janeiro,"null","museudesporto@dpep.ensino.eb.br"
"Rio de Janeiro,"http://www.pretosnovos.com.br/index.html","null"
"Rio de Janeiro,"https://www.tiaciata.org.br/","casa@tiaciata.org.br"
"Rio de Janeiro,"http://www.oifuturo.org.br/cultura/museu-das-telecomunicacoes/","faleconosco@oifuturo.org.br"
"Rio de Janeiro,"http://www.tourmaracana.com.br/ingressos","null"
"Rio de Janeiro,"http://www.jbrj.gov.br/visitacao/espacotomjobim","null"
"Rio de Janeiro,"http://www.cnfcp.gov.br/interna.php?ID_Secao=2","museu.folclore@iphan.gov.br"
"Rio de Janeiro,"http://www.evaklabin.org.br/","null"
"Rio de Janeiro,"http://www.museudamare.org.br/","null"
"Rio de Janeiro,"http://www.catedral.com.br/museuArteSacra.php","catedral@catedral.com.br"
"Rio de Janeiro,"http://www.pedeboi.com.br/","pedeboi@pedeboi.com.br"
"Rio de Janeiro,"http://www.cprm.gov.br/publique/cgi/cgilua.exe/sys/start.htm?sid=93&infoid=341","mcter.dnpm@dnpm.gov.br"
"Rio de Janeiro,"http://www.quintinofutebolclube.com.br/","null"
"Rio de Janeiro,"http://www.casadamoeda.gov.br/agendavisita/","null"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"http://www.bazardooriente.com.br/jimmy","null"
"Rio de Janeiro,"http://rioillusions.com/","contact@rioillusions.com.br"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"http://www.museuscastromaya.com.br/","null"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"http://www.mar.mil.br/cgcfn/museu/index.htm","ronaldo@cgcfn.mar.mil.br"
"Rio de Janeiro,"http://www.casadaescadacolorida.com/","info@casadaescadacolorida.com"
"Rio de Janeiro,"http://www.museuimagensdoinconsciente.org.br/","null"
"Rio de Janeiro,"http://www.naucultural.com.br/","contato@naucultural.com.br"
"Rio de Janeiro,"http://www.flaexperience.com.br/","contato@flaexperience.com.br"
"Rio de Janeiro,"http://visit.rio/que_fazer/nave-do-conhecimento-e-museu-cidade-olimpica/","null"
"Rio de Janeiro,"http://www.museudoindio.gov.br/","atividades@museudoindio.org.br"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"http://www.museu.cbmerj.rj.gov.br/","museu@cbmerj.rj.gov.br"
"Rio de Janeiro,"http://www.conarq.gov.br/consulta-a-entidades/item/museu-da-justica.html","museudajustica@tjrj.jus.br"
"Rio de Janeiro,"http://www.mis.rj.gov.br/","null"
"Rio de Janeiro,"http://museudopontal.org.br/","institucional@museudopontal.org.br"
"Rio de Janeiro,"http://jbrj.gov.br/visitacao/museucasapiloes","sbarrer@jbrj.gov.br"
"Rio de Janeiro,"http://www.galeria-ipanema.com/","null"
"Rio de Janeiro,"http://www.bndes.gov.br/wps/portal/espacobndes/espacobndes/home/!ut/p/z1/04_Sj9CPykssy0xPLMnMz0vMAfIjo8ziTTxdXD0M3A18DEK9XA0cDf18DAwMvAz8TUz0wwkpiAJKG-AAjgZA_VFgJT6W3q4eJv4GPv5m3kATQh39Q4MsvY0NfEygCvCYUZAbYZDpqKgIAPJrVdg!/dz/d5/L2dBISEvZ0FBIS9nQSEh","null"
"Rio de Janeiro,"http://www.facebook.com/CMA.HelioOiticica","null"
"Rio de Janeiro,"http://www.facebook.com/laurindasantoslobo","null"
"Rio de Janeiro,"http://www.museudacidadedorio.com.br/","mcrj@pcrj.rj.gov.br"
"Rio de Janeiro,"http://sitioburlemarx.blogspot.com.br/","null"
"Rio de Janeiro,"http://www.pinakotheke.com.br/new/pinakotheke-rio-de-janeiro.php","null"
"Rio de Janeiro,"http://www.correios.com.br/sobreCorreios/educacaoCultura/centrosEspacosCulturais/default.cfm","null"
"Rio de Janeiro,"http://baukurs.com.br/","secretaria@baukurs.com.br"
"Rio de Janeiro,"http://www.facebook.com/MuseuCasaBenjaminConstant/","mcbc@museus.gov.br"
"Rio de Janeiro,"null","museubispodorosario@ig.com.br"
"Rio de Janeiro,"http://ererio.itamaraty.gov.br/pt-br/museu_historico_e_diplomatico.xml","ererio.museu@itamaraty.gov.br"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"http://www.casadaciencia.ufrj.br/","null"
"Rio de Janeiro,"http://museudomeioambiente.jbrj.gov.br/","museumeioambiente@jbrj.gov.br"
"Rio de Janeiro,"http://www.museuvillalobos.org.br/","mvillalobos@museuvillalobos.org.br"
"Rio de Janeiro,"http://www.facebook.com/memorialmunicipalgetuliovargas","memorialgetuliovargas.cultura@gmail.com"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"http://www.casadochoro.com.br/","null"
"Rio de Janeiro,"http://mapas.cultura.gov.br/espaco/6149/","imprensa@suderj.rj.gov.br"
"Rio de Janeiro,"null","gepro@inea.rj.gov.br"
"Rio de Janeiro,"http://www.belohorizonte.mg.gov.br/local/atrativo-turistico/artistico-cultural/museu-da-forca-expedicionaria-brasileira-feb","anvfeb@uol.com.br"
"Rio de Janeiro,"http://www.puc-rio.br/sobrepuc/depto/solar","null"
"Rio de Janeiro,"http://www.museujudaico.org.br/","museu@museujudaico.org.br"
"Rio de Janeiro,"http://www.oifuturo.org.br/cultura/oi-futuro-ipanema/","null"
"Rio de Janeiro,"http://www.casafrancabrasil.rj.gov.br/","null"
"Rio de Janeiro,"https://instagram.com/memorialdoholocaustorio?igshid=ndk5n2nlzjq=","null"
"Rio de Janeiro,"http://www.largodasartes.com.br/","null"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"http://www.museuhistoriconacional.com.br/","null"
"Rio de Janeiro,"null","liesarj@liesa.com.br"
"Rio de Janeiro,"null","memorial@sbp.com.br"
"Rio de Janeiro,"null","museu@pcerj.rj.gov.br"
"Rio de Janeiro,"http://www.museu.igeo.ufrj.br/","mgeo@ufrj.br"
"Rio de Janeiro,"null","santacasa@openlink.com.br"
"Rio de Janeiro,"http://www.ecomuseusantacruz.com.br/","ecomuseuqcsc_smc@rio.rj.gov.br"
"Rio de Janeiro,"http://agentilcarioca.com.br/","null"
"Rio de Janeiro,"null","abtbr@abtbr.org.br"
"Rio de Janeiro,"null","rgaspar@sbb.org.br"
"Rio de Janeiro,"http://www.cartola.org.br/","cartola@cartola.org.br"
"Rio de Janeiro,"http://www.funceb.org.br/espacoCultural.asp?materia=268","null"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"null","museu_pmerj@policiamilitar.rj.gov.br"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"http://www.anm.org.br/","centrodamemoriamedica@anm.org.br"
"Rio de Janeiro,"http://www.funarj.rj.gov.br/","null"
"Rio de Janeiro,"http://www.kreatori.com.br/","institutokreatori@gmail.com"
"Rio de Janeiro,"http://www.iq.ufrj.br/museu","diretoria@iq.ufrj.br"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"http://www.sergiogoncalvesgaleria.com/","vendas@almacengaleria.com"
"Rio de Janeiro,"http://www.ccme.org.br/","ccme@terra.com.br"
"Rio de Janeiro,"null","museudesporto@dpep.ensino.eb.br"
"Rio de Janeiro,"https://instagram.com/memorialdoholocaustorio?igshid=ndk5n2nlzjq=","null"
"Rio de Janeiro,"null","abf@abf.org.br"
"Rio de Janeiro,"null","mjm@capemi.org.br"
"Rio de Janeiro,"http://museus.cultura.gov.br/espaco/7504/","dzm01@yahoo.com.br"
"Rio de Janeiro,"http://www.bernardomonteverde.com/","memorial@bernardomonteverde.com"
"Rio de Janeiro,"null","centroludico@bol.com.br"
"Rio de Janeiro,"null","museudosteatros@gmail.com"
"Rio de Janeiro,"http://galeriamovimento.com.br/","contato@galeriamovimento.com"
"Rio de Janeiro,"https://www.instagram.com/1bimec_exercito/?hl=pt-br#","null"
"Rio de Janeiro,"http://emccf.biof.ufrj.br/","memorial@biof.ufrj.br"
"Rio de Janeiro,"null","cepegpseap@gmail.com"
"Rio de Janeiro,"http://www.galeriadagavea.com.br/","null"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"https://www.facebook.com/vidigalhangout/","vidigalhangout@gmail.com"
"Rio de Janeiro,"http://aeo.com.br/","null"
"Rio de Janeiro,"null","null"
"Rio de Janeiro,"http://arturfidalgo.com.br/","null"
"Rio de Janeiro,"https://www.facebook.com/palartgallery/","pallepost@gmail.com"
"Rio de Janeiro,"https://galaxion.site/","galaxionrio@gmail.com"
"Rio de Janeiro,"http://cadastro.museus.gov.br/museus/museu-aeroterrestre","museuaeroterrestre@gmail.com"
"Rio de Janeiro,"https://riofootballexperience.com.br/","info@riofootballexperience.com.br"
"Rio de Janeiro,"https://galaxion.site/","galaxionrio@gmail.com"
"Rio de Janeiro,"http://cadastro.museus.gov.br/museus/museu-aeroterrestre","museuaeroterrestre@gmail.com"
"Rio de Janeiro,"https://riofootballexperience.com.br/","info@riofootballexperience.com.br"
"Rio de Janeiro,"https://galaxion.site/","galaxionrio@gmail.com"
"Rio de Janeiro,"http://cadastro.museus.gov.br/museus/museu-aeroterrestre","museuaeroterrestre@gmail.com"
"Rio de Janeiro,"https://riofootballexperience.com.br/","info@riofootballexperience.com.br"
"Rio de Janeiro,"https://galaxion.site/","galaxionrio@gmail.com"
"Rio de Janeiro,"http://cadastro.museus.gov.br/museus/museu-aeroterrestre","museuaeroterrestre@gmail.com"
"Rio de Janeiro,"https://riofootballexperience.com.br/","info@riofootballexperience.com.br"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://www.unicorngalleryart.com/","info@unicorngalleryblog.com"
"Lahore,"http://oceanartgalleries.com/","contact@oceanartgalleries.com"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://www.unicorngalleryart.com/","info@unicorngalleryblog.com"
"Lahore,"http://oceanartgalleries.com/","contact@oceanartgalleries.com"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://www.unicorngalleryart.com/","info@unicorngalleryblog.com"
"Lahore,"http://oceanartgalleries.com/","contact@oceanartgalleries.com"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://www.unicorngalleryart.com/","info@unicorngalleryblog.com"
"Lahore,"http://oceanartgalleries.com/","contact@oceanartgalleries.com"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://www.unicorngalleryart.com/","info@unicorngalleryblog.com"
"Lahore,"http://oceanartgalleries.com/","contact@oceanartgalleries.com"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://www.unicorngalleryart.com/","info@unicorngalleryblog.com"
"Lahore,"http://oceanartgalleries.com/","contact@oceanartgalleries.com"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://www.unicorngalleryart.com/","info@unicorngalleryblog.com"
"Lahore,"http://oceanartgalleries.com/","contact@oceanartgalleries.com"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://www.unicorngalleryart.com/","info@unicorngalleryblog.com"
"Lahore,"http://oceanartgalleries.com/","contact@oceanartgalleries.com"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://www.unicorngalleryart.com/","info@unicorngalleryblog.com"
"Lahore,"http://oceanartgalleries.com/","contact@oceanartgalleries.com"
"Lahore,"http://lahoremuseum.org/","null"
"Lahore,"https://armymuseumlahore.pk/","siaf.123@gmail.com"
"Lahore,"http://www.daraz.pk/shop/maya-traders-lahore","null"
"Lahore,"http://fakirkhanamuseum.blogspot.com/","null"
"Lahore,"http://www.naqshschoolofarts.com/","null"
"Lahore,"http://lahore.city-history.com/places/punjab-exhibition-hall-tollinton-market/","null"
"Lahore,"null","null"
"Lahore,"http://www.facebook.com/nhmlahore/","info_nhm@citizensarchive.org"
"Lahore,"http://www.facebook.com/nairang.art.","null"
"Lahore,"https://www.facebook.com/PIA-Planetarium-203454656344611","pia.pltkhi@yahoo.com"
"Lahore,"http://www.unicorngalleryart.com/","info@unicorngalleryblog.com"
"Lahore,"http://oceanartgalleries.com/","contact@oceanartgalleries.com"
"Bangalore,"http://www.vismuseum.gov.in/","vitmuseum@gmail.com"
"Bangalore,"http://www.cauveryhandicrafts.net/","null"
"Bangalore,"http://www.indianmusicexperience.org/","info@indianmusicexperience.org"
"Bangalore,"null","null"
"Bangalore,"http://hal-india.co.in/Heritage%20Centre%20and%20Aerospace%20Museum/M__20","halmuseum@gmail.com"
"Bangalore,"http://www.taralaya.org/","null"
"Bangalore,"https://www.facebook.com/ngmablr/","null"
"Bangalore,"http://www.curiouscity.org/","info@curiouscity.org"
"Bangalore,"http://www.kynkyny.com/","art@kynkyny.com"
"Bangalore,"http://vagforum.in/","null"
"Bangalore,"http://www.bluesignprint.com/","null"
"Bangalore,"http://www.nimhans.ac.in/neuropathology/brain-museum","null"
"Bangalore,"https://www.facebook.com/RangoliMetroArtCenter/","null"
"Bangalore,"null","null"
"Bangalore,"http://www.blrcreativecircus.com/","info@blrcreativecircus.com"
"Bangalore,"https://verdecanvas.com/","artbyabhi@gmail.com"
"Bangalore,"https://paramscience.org/parsec","marketing@paraminnovation.org"
"Bangalore,"http://paraminnovation.org/","info@paraminnovation.org"
"Bangalore,"null","null"
"Bangalore,"http://www.mahuagallery.com/","jahnvi@mahuagallery.com"
"Bangalore,"https://www.indianpapermoneymuseum.com/","contact@indianpapermoneymuseum.com"
"Bangalore,"http://www.crimsonartgallery.com/","info@crimsonartgallery.com"
"Bangalore,"http://www.peepletree.in/","maya@peepletree.in"
"Bangalore,"https://www.facebook.com/102287651237756","null"
"Bangalore,"http://www.shadescreativegallery.com/","shadescreativegallery@gmail.com"
"Bangalore,"null","null"
"Bangalore,"null","null"
"Bangalore,"http://www.sublimegalleria.com/","sublime@prestigeconstructions.com"
"Bangalore,"https://www.sumukha.com/","info@sumukha.com"
"Bangalore,"http://www.genethos.com/","null"
"Bangalore,"http://www.swethamberarts.com/","swethamberarts@gmail.com"
"Bangalore,"https://tretahandicrafts.com/","tretahandicrafts@gmail.com"
"Bangalore,"null","maya5622@gmail.com"
"Bangalore,"https://map-india.org/","hello@map-india.org"
"Bangalore,"http://www.gitagged.com/","care@gitagged.com"
"Bangalore,"http://map-india.org/contact-us/","hello@map-india.org"
"Bangalore,"null","null"
"Bangalore,"null","null"
"Bangalore,"http://www.sublimegalleria.com/","sublime@prestigeconstructions.com"
"Bangalore,"https://www.sumukha.com/","info@sumukha.com"
"Bangalore,"http://www.genethos.com/","null"
"Bangalore,"http://www.swethamberarts.com/","swethamberarts@gmail.com"
"Bangalore,"https://tretahandicrafts.com/","tretahandicrafts@gmail.com"
"Bangalore,"null","maya5622@gmail.com"
"Bangalore,"https://map-india.org/","hello@map-india.org"
"Bangalore,"http://www.gitagged.com/","care@gitagged.com"
"Bangalore,"http://map-india.org/contact-us/","hello@map-india.org"
"Bangalore,"null","null"
"Bangalore,"null","null"
"Bangalore,"http://www.sublimegalleria.com/","sublime@prestigeconstructions.com"
"Bangalore,"https://www.sumukha.com/","info@sumukha.com"
"Bangalore,"http://www.genethos.com/","null"
"Bangalore,"http://www.swethamberarts.com/","swethamberarts@gmail.com"
"Bangalore,"https://tretahandicrafts.com/","tretahandicrafts@gmail.com"
"Bangalore,"null","maya5622@gmail.com"
"Bangalore,"https://map-india.org/","hello@map-india.org"
"Bangalore,"http://www.gitagged.com/","care@gitagged.com"
"Bangalore,"http://map-india.org/contact-us/","hello@map-india.org"
"Bangalore,"null","null"
"Bangalore,"null","null"
"Bangalore,"http://www.sublimegalleria.com/","sublime@prestigeconstructions.com"
"Bangalore,"https://www.sumukha.com/","info@sumukha.com"
"Bangalore,"http://www.genethos.com/","null"
"Bangalore,"http://www.swethamberarts.com/","swethamberarts@gmail.com"
"Bangalore,"https://tretahandicrafts.com/","tretahandicrafts@gmail.com"
"Bangalore,"null","maya5622@gmail.com"
"Bangalore,"https://map-india.org/","hello@map-india.org"
"Bangalore,"http://www.gitagged.com/","care@gitagged.com"
"Bangalore,"http://map-india.org/contact-us/","hello@map-india.org"
"Bangalore,"null","null"
"Bangalore,"null","null"
"Bangalore,"http://www.sublimegalleria.com/","sublime@prestigeconstructions.com"
"Bangalore,"https://www.sumukha.com/","info@sumukha.com"
"Bangalore,"http://www.genethos.com/","null"
"Bangalore,"http://www.swethamberarts.com/","swethamberarts@gmail.com"
"Bangalore,"https://tretahandicrafts.com/","tretahandicrafts@gmail.com"
"Bangalore,"null","maya5622@gmail.com"
"Bangalore,"https://map-india.org/","hello@map-india.org"
"Bangalore,"http://www.gitagged.com/","care@gitagged.com"
"Bangalore,"http://map-india.org/contact-us/","hello@map-india.org"
"Bangalore,"null","null"
"Bangalore,"null","null"
"Bangalore,"http://www.sublimegalleria.com/","sublime@prestigeconstructions.com"
"Bangalore,"https://www.sumukha.com/","info@sumukha.com"
"Bangalore,"http://www.genethos.com/","null"
"Bangalore,"http://www.swethamberarts.com/","swethamberarts@gmail.com"
"Bangalore,"https://tretahandicrafts.com/","tretahandicrafts@gmail.com"
"Bangalore,"null","maya5622@gmail.com"
"Bangalore,"https://map-india.org/","hello@map-india.org"
"Bangalore,"http://www.gitagged.com/","care@gitagged.com"
"Bangalore,"http://map-india.org/contact-us/","hello@map-india.org"
"Bangalore,"null","null"
"Bangalore,"null","null"
"Bangalore,"http://www.sublimegalleria.com/","sublime@prestigeconstructions.com"
"Bangalore,"https://www.sumukha.com/","info@sumukha.com"
"Bangalore,"http://www.genethos.com/","null"
"Bangalore,"http://www.swethamberarts.com/","swethamberarts@gmail.com"
"Bangalore,"https://tretahandicrafts.com/","tretahandicrafts@gmail.com"
"Bangalore,"null","maya5622@gmail.com"
"Bangalore,"https://map-india.org/","hello@map-india.org"
"Bangalore,"http://www.gitagged.com/","care@gitagged.com"
"Bangalore,"http://map-india.org/contact-us/","hello@map-india.org"
"Bangalore,"null","null"
"Bangalore,"null","null"
"Bangalore,"http://www.sublimegalleria.com/","sublime@prestigeconstructions.com"
"Bangalore,"https://www.sumukha.com/","info@sumukha.com"
"Bangalore,"http://www.genethos.com/","null"
"Bangalore,"http://www.swethamberarts.com/","swethamberarts@gmail.com"
"Bangalore,"https://tretahandicrafts.com/","tretahandicrafts@gmail.com"
"Bangalore,"null","maya5622@gmail.com"
"Bangalore,"https://map-india.org/","hello@map-india.org"
"Bangalore,"http://www.gitagged.com/","care@gitagged.com"
"Bangalore,"http://map-india.org/contact-us/","hello@map-india.org"
"Bangalore,"null","null"
"Bangalore,"null","null"
"Bangalore,"http://www.sublimegalleria.com/","sublime@prestigeconstructions.com"
"Bangalore,"https://www.sumukha.com/","info@sumukha.com"
"Bangalore,"http://www.genethos.com/","null"
"Bangalore,"http://www.swethamberarts.com/","swethamberarts@gmail.com"
"Bangalore,"https://tretahandicrafts.com/","tretahandicrafts@gmail.com"
"Bangalore,"null","maya5622@gmail.com"
"Bangalore,"https://map-india.org/","hello@map-india.org"
"Bangalore,"http://www.gitagged.com/","care@gitagged.com"
"Bangalore,"http://map-india.org/contact-us/","hello@map-india.org"
"Moscow,"http://www.kreml.ru/en/","head@kremlin.museum.ru"
"Moscow,"http://www.mgomz.ru/","null"
"Moscow,"http://www.tretyakovgallery.ru/about/history/zdanie-v-lavrushinskom-pereulke/","tretyakov@tretyakov.ru"
"Moscow,"http://www.kreml.ru/en/","head@kremlin.museum.ru"
"Moscow,"http://www.mgomz.ru/","null"
"Moscow,"http://www.tretyakovgallery.ru/about/history/zdanie-v-lavrushinskom-pereulke/","tretyakov@tretyakov.ru"
"Moscow,"https://vk.com/tsaritsynomuseum","info@tsaritsyno.net"
"Moscow,"http://kosmo-museum.ru/","editormmk@gmail.com"
"Moscow,"http://www.kreml.ru/","null"
"Moscow,"null","null"
"Moscow,"http://www.bunker42.com/","zakaz@bunker42.com"

Can't render this file because it contains an unexpected character in line 2 and column 8.

View File

@ -9,7 +9,7 @@ import chrome, { ServiceBuilder } from 'selenium-webdriver/chrome';
import * as fs from 'fs'; import * as fs from 'fs';
import * as path from 'path'; import * as path from 'path';
import { getCities } from './lib/cities'; import { getCities } from './lib/cities';
import { WebDriverUtils, saveContactInfoToCSV, useExistingChrome, disableCookiesInChrome } from './lib/utils'; import { WebDriverUtils, saveContactInfoToCSV, useExistingChrome, disableCookiesInChrome, useChrome } from './lib/utils';
import * as UIActions from './lib/UIActions'; import * as UIActions from './lib/UIActions';
import { randomUUID } from 'crypto'; import { randomUUID } from 'crypto';
@ -30,10 +30,6 @@ async function visitCityPages(): Promise<void> {
for (let i = 0; i < cities.length; i++) { for (let i = 0; i < cities.length; i++) {
const city = cities[i]; const city = cities[i];
console.log(`[${i + 1}/${cities.length}] Visiting TripAdvisor page for ${city}...`); console.log(`[${i + 1}/${cities.length}] Visiting TripAdvisor page for ${city}...`);
let originalWindow;
let cityTopWindow;
let attactionsWindow;
let museumWindow;
try { try {
@ -41,93 +37,52 @@ async function visitCityPages(): Promise<void> {
console.log("Logo click") console.log("Logo click")
if (!await UIActions.gotoHome(driver)) throw `${city} failed`; if (!await UIActions.gotoHome(driver)) throw `${city} failed`;
await WebDriverUtils.wait(); await WebDriverUtils.wait(driver);
console.log("Exec Search") console.log("Exec Search")
if (!await UIActions.execSearch(driver, city)) throw `${city} failed`; if (!await UIActions.execSearch(driver, `${city} museum`)) throw `${city} failed`;
await WebDriverUtils.wait(5); await WebDriverUtils.wait(driver);
console.log("Click See all")
if (!await UIActions.clickSeeAll(driver)) {
if (!await UIActions.clickTourismLink(driver)) throw `${city} failed`;
if (!await UIActions.clickSeeAll(driver)) throw `${city} failed`;
}
await WebDriverUtils.wait();
console.log("Switch tab")
let windows = await driver.getAllWindowHandles();
// Switch to the newly opened window/tab
for (const handle of windows) {
if (handle !== originalWindow) {
cityTopWindow = handle;
await driver.switchTo().window(handle);
}
}
console.log("Click See all attractions")
if (!await UIActions.clickSeeAllAttractions(driver)) throw `${city} failed`;
await WebDriverUtils.wait();
console.log("Switch tab to Attraction")
windows = await driver.getAllWindowHandles();
// Switch to the newly opened window/tab
for (const handle of windows) {
if (handle !== originalWindow && handle !== cityTopWindow) {
attactionsWindow = handle;
await driver.switchTo().window(attactionsWindow);
}
}
// click museum
console.log("Click Museum link");
if (!await UIActions.clickMuseumsLink(driver)) throw `${city} failed`;
await WebDriverUtils.wait();
let page = 1; let page = 1;
let museumNames: string[] = [];
while (1) { while (1) {
// get list of museums // get list of museums
console.log("Get list of museums"); console.log("Get list of museums");
const museumElms = await UIActions.getMusiums(driver); const tmpMuseumNames = await UIActions.getAttractionNames(driver);
await WebDriverUtils.wait(); await WebDriverUtils.wait(driver);
museumNames = [...museumNames, ...tmpMuseumNames]
for (const listItem of museumElms) {
await listItem.click();
await WebDriverUtils.wait();
windows = await driver.getAllWindowHandles();
for (const handle of windows) {
if (handle !== originalWindow && handle !== cityTopWindow && handle !== attactionsWindow) {
museumWindow = handle;
await driver.switchTo().window(museumWindow);
}
}
const { websiteUrl, email } = await UIActions.getWebsiteAndEmail(driver);
console.log(`${websiteUrl} / ${email}`);
saveContactInfoToCSV(city, { websiteUrl: websiteUrl, email: email }, path.join(__dirname, '../data/contact_info.csv'));
museumWindow && await driver.switchTo().window(museumWindow);
await driver.close();
await WebDriverUtils.wait();
attactionsWindow && await driver.switchTo().window(attactionsWindow);
await WebDriverUtils.wait();
}
page++; page++;
if (page > 10) break; if (page > 10) break;
UIActions.clickPagination(driver, page); UIActions.clickPagination(driver, page);
await WebDriverUtils.wait(); await WebDriverUtils.wait(driver);
} }
for (const museumName of museumNames) {
console.log("back to home");
if (!await UIActions.gotoHome(driver)) throw `${city} failed`;
await WebDriverUtils.wait(driver);
if (!await UIActions.typeSearch(driver, `${city} ${museumName}`)) throw `${city} failed`;
await WebDriverUtils.wait(driver);
if (!await UIActions.clickFirstAttractionLinkInForm(driver)) throw `${city} failed`;
await WebDriverUtils.wait(driver);
const { websiteUrl, email } = await UIActions.getWebsiteAndEmail(driver);
console.log(`${websiteUrl} / ${email}`);
saveContactInfoToCSV(city, { websiteUrl: websiteUrl, email: email }, path.join(__dirname, '../data/contact_info.csv'));
}
console.log(museumNames);
await UIActions.closeAllTabsExceptFirst(driver); await UIActions.closeAllTabsExceptFirst(driver);
@ -135,9 +90,8 @@ async function visitCityPages(): Promise<void> {
console.log(`Waiting for 5000 seconds before next city...`); console.log(`Waiting for 5000 seconds before next city...`);
await WebDriverUtils.wait(); // Wait 5000 seconds before next city await WebDriverUtils.wait(); // Wait 5000 seconds before next city
} }
} catch (error) {
await UIActions.closeAllTabsExceptFirst(driver); } catch (error) {
// If the button is not found within the timeout, log and continue to the next city // If the button is not found within the timeout, log and continue to the next city
console.log(`No Museums button found for ${city}. Moving to next city after 5 seconds...`); console.log(`No Museums button found for ${city}. Moving to next city after 5 seconds...`);

View File

@ -8,7 +8,7 @@ import { ContactInfo } from './types';
export async function execSearch(driver: WebDriver, city: string): Promise<boolean> { export async function execSearch(driver: WebDriver, searchTerm: string): Promise<boolean> {
try { try {
// Find the search input field // Find the search input field
const searchSelector = 'input[name="q"][placeholder="Places to go, things to do, hotels..."]'; const searchSelector = 'input[name="q"][placeholder="Places to go, things to do, hotels..."]';
@ -18,12 +18,12 @@ export async function execSearch(driver: WebDriver, city: string): Promise<boole
// Clear any existing text and enter the city name // Clear any existing text and enter the city name
await searchInput.clear(); await searchInput.clear();
await searchInput.sendKeys(city); await searchInput.sendKeys(searchTerm);
// Submit the search (press Enter) // Submit the search (press Enter)
await WebDriverUtils.wait(2); await WebDriverUtils.wait(driver);
await searchInput.sendKeys('\uE007'); // Unicode for Enter key await searchInput.sendKeys('\uE007'); // Unicode for Enter key
await WebDriverUtils.wait(5); // Wait 5 seconds before next city await WebDriverUtils.wait(driver); // Wait 5 seconds before next city
return true; return true;
} catch (e) { } catch (e) {
@ -31,6 +31,25 @@ export async function execSearch(driver: WebDriver, city: string): Promise<boole
} }
} }
export async function typeSearch(driver: WebDriver, searchTerm: string): Promise<boolean> {
try {
// Find the search input field
const searchSelector = 'input[name="q"][placeholder="Places to go, things to do, hotels..."]';
await WebDriverUtils.waitForElement(driver, searchSelector, 10000);
console.log("Search box found");
const searchInput = await driver.findElement(By.css(searchSelector));
// Clear any existing text and enter the city name
await searchInput.clear();
await searchInput.sendKeys(searchTerm);
return true;
} catch (e) {
return false;
}
}
export async function clickSeeAll(driver: WebDriver): Promise<boolean> { export async function clickSeeAll(driver: WebDriver): Promise<boolean> {
try { try {
const seeAllElement = await driver.wait( const seeAllElement = await driver.wait(
@ -49,6 +68,21 @@ export async function clickSeeAll(driver: WebDriver): Promise<boolean> {
} }
} }
export async function getSeeAllUrl(driver: WebDriver): Promise<string> {
const xpath = `//h3[normalize-space(.)='Things to do']/ancestor::div[1]//a[starts-with(@href, '/Attractions')]`;
try {
const anchor = await driver.wait(until.elementLocated(By.xpath(xpath)), 5000);
const url = await anchor.getAttribute('href');
console.log('Found Attractions URL:', url);
return url;
} catch (err) {
console.warn('Could not find the Attractions link:', err);
}
return "";
}
export async function gotoHome(driver: WebDriver): Promise<boolean> { export async function gotoHome(driver: WebDriver): Promise<boolean> {
try { try {
// Click on the Tripadvisor logo before searching for the city // Click on the Tripadvisor logo before searching for the city
@ -65,7 +99,7 @@ export async function gotoHome(driver: WebDriver): Promise<boolean> {
} }
export async function clickSeeAllAttractions(driver: WebDriver): Promise<boolean> { export async function clickSeeAllAttractions(driver: WebDriver): Promise<boolean> {
const xpath = `//h2[starts-with(normalize-space(.), 'Top Attractions in')]/parent::*[1]//a[starts-with(@href, '/Attractions') and .//span[normalize-space(.)='See all']]`; const xpath = `//h3[starts-with(normalize-space(.), 'Things to do')]/parent::*[1]//a[starts-with(@href, '/Attractions') and .//span[normalize-space(.)='See all']]`;
try { try {
const anchorElement = await driver.wait(until.elementLocated(By.xpath(xpath)), 5000); const anchorElement = await driver.wait(until.elementLocated(By.xpath(xpath)), 5000);
@ -82,6 +116,22 @@ export async function clickSeeAllAttractions(driver: WebDriver): Promise<boolean
} }
} }
export async function getSeeAllAttractionsUrl(driver: WebDriver): Promise<string | null> {
const xpath = `//h3[starts-with(normalize-space(.), 'Top Attractions in')]/parent::*[1]//a[starts-with(@href, '/Attractions') and .//span[normalize-space(.)='See all']]`;
try {
const anchorElement = await driver.wait(until.elementLocated(By.xpath(xpath)), 5000);
await driver.wait(until.elementIsVisible(anchorElement), 5000);
const href = await anchorElement.getAttribute('href');
return href;
} catch (error) {
console.warn('Element not found or href not retrievable.', error);
return null;
}
}
export async function clickMuseumsLink(driver: WebDriver): Promise<boolean> { export async function clickMuseumsLink(driver: WebDriver): Promise<boolean> {
const xpath = `//a[.//*[normalize-space(.)='Museums']]`; const xpath = `//a[.//*[normalize-space(.)='Museums']]`;
@ -130,6 +180,49 @@ export async function getMusiums(driver: WebDriver): Promise<WebElement[]> {
} }
} }
export async function getMuseumsLinks(driver: WebDriver): Promise<string[]> {
const xpath = `//div//section[.//a[starts-with(@href, '/Attraction')] and .//h3]//a[starts-with(@href, '/Attraction') and .//img]`;
try {
const links = await driver.findElements(By.xpath(xpath));
const urls: string[] = [];
for (const link of links) {
const href = await link.getAttribute('href');
if (href) {
urls.push(href);
}
}
return urls;
} catch (error) {
console.warn('Error getting attraction URLs:', error);
return [];
}
}
export async function getAttractionNames(driver: WebDriver): Promise<string[]> {
// XPath to find <h3> inside <a> whose href starts with /Attraction_Review
const xpath = `//a[starts-with(@href, '/Attraction_Review')]/h3`;
try {
const h3Elements = await driver.findElements(By.xpath(xpath));
const names: string[] = [];
for (const h3 of h3Elements) {
const text = await h3.getText();
if (text) {
names.push(text.trim().replace(/^\d+\.\s*/, ''));
}
}
return names;
} catch (error) {
console.warn('Error getting attraction names:', error);
return [];
}
}
export async function getWebsiteAndEmail(driver: WebDriver): Promise<ContactInfo> { export async function getWebsiteAndEmail(driver: WebDriver): Promise<ContactInfo> {
const result: ContactInfo = { websiteUrl: null, email: null }; const result: ContactInfo = { websiteUrl: null, email: null };
@ -194,3 +287,23 @@ export async function closeAllTabsExceptFirst(driver: WebDriver): Promise<void>
await driver.switchTo().window(originalHandle); await driver.switchTo().window(originalHandle);
console.log(`Switched back to original tab: ${originalHandle}`); console.log(`Switched back to original tab: ${originalHandle}`);
} }
export async function clickFirstAttractionLinkInForm(driver: WebDriver): Promise<boolean> {
const xpath = `//form//a[starts-with(@href, '/Attraction')]`;
try {
// Wait for the link to appear inside a form
const link = await driver.wait(until.elementLocated(By.xpath(xpath)), 5000);
await driver.wait(until.elementIsVisible(link), 5000);
await driver.wait(until.elementIsEnabled(link), 5000);
await link.click();
console.log('Clicked the first attraction link in the form.');
return true;
} catch (error) {
console.warn('Attraction link not found or not clickable.', error);
return false;
}
}

View File

@ -14,10 +14,33 @@ export class WebDriverUtils {
* @param seconds Number of seconds to wait * @param seconds Number of seconds to wait
* @returns Promise that resolves after the specified time * @returns Promise that resolves after the specified time
*/ */
static async wait(seconds: number = 3): Promise<void> { static async wait(driver?: WebDriver): Promise<void> {
seconds = Math.floor(Math.random() * 1000) % 3 + 3; const seconds = Math.floor(Math.random() * 1000) % 3 + 3;
console.log(`Waiting for ${seconds} seconds...`); console.log(`Scrolling to bottom for ${seconds} seconds...`);
return new Promise(resolve => setTimeout(resolve, seconds * 1000));
const endTime = Date.now() + seconds * 1000;
let scrollCounter = 0;
while (Date.now() < endTime) {
/*
try {
if (driver) {
await driver.executeScript(`
window.scrollBy(0, 10);
`);
scrollCounter++;
}
} catch (error) {
console.warn('Scroll failed:', error);
}
*/
// Wait a little between scrolls
await new Promise(resolve => setTimeout(resolve, 500));
}
} }
/** /**
@ -85,6 +108,45 @@ export async function disableCookiesInChrome(): Promise<WebDriver | null> {
} }
export async function useChrome(initialUrl: string = "https://www.tripadvisor.com/"): Promise<WebDriver | null> {
// Set Chrome options
const options = new chrome.Options();
// 1. Block all cookies
//options.setUserPreferences({
// 'profile.default_content_setting_values.cookies': 2, // 2 = Block all
// 'profile.block_third_party_cookies': true
//});
// 2. Optional: Launch in incognito for extra privacy
options.addArguments('--incognito');
options.addArguments('--start-maximized');
let driver: WebDriver | null = null;
try {
driver = await new Builder()
.forBrowser('chrome')
.setChromeOptions(options)
.build();
await driver.get(initialUrl);
console.log('Chrome launched with cookies disabled.');
// Optional: Verify cookies are blocked by trying to set/get a cookie
await driver.manage().addCookie({ name: 'test', value: '123' });
const cookies = await driver.manage().getCookies();
console.log('Cookies after trying to add:', cookies); // Should be empty or restricted
return driver;
} catch (error) {
console.error('Error:', error);
return driver;
}
}
export async function useExistingChrome(): Promise<WebDriver> { export async function useExistingChrome(): Promise<WebDriver> {
// Connect to an existing Chrome browser running in debug mode on port 9222 // Connect to an existing Chrome browser running in debug mode on port 9222
const options = new chrome.Options(); const options = new chrome.Options();