├── .idea ├── inspectionProfiles │ └── profiles_settings.xml ├── misc.xml ├── modules.xml ├── qunaer.iml └── workspace.xml ├── README.md ├── images ├── Knowledge Graph.png ├── crawler.png ├── db_qunaer.png └── db_qunaerTriples.png ├── qunaer.csv ├── qunaer ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-36.pyc │ ├── items.cpython-36.pyc │ ├── pipelines.cpython-36.pyc │ └── settings.cpython-36.pyc ├── items.py ├── middlewares.py ├── pipelines.py ├── settings.py └── spiders │ ├── __init__.py │ ├── __pycache__ │ ├── __init__.cpython-36.pyc │ └── qunaer.cpython-36.pyc │ └── qunaer.py ├── run.py └── scrapy.cfg /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/qunaer.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | -------------------------------------------------------------------------------- /.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 11 | 12 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 39 | 40 | 41 | 42 | 43 | 62 | 63 | 64 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 1619081025310 97 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | file://$PROJECT_DIR$/qunaer/spiders/qunaer.py 108 | 78 109 | 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # WEB知识图谱构建 2 | 3 | * 利用scrapy框架爬取去哪儿网热门景点信息 4 | * 抽取三元组信息(存入mongdb数据库) 5 | * 构建中文知识图谱(存入neo4j数据库) 6 | 7 | ## 环境构建 8 | * Windows 10(也可在ubuntu) 9 | * python 3.7 10 | * mongdb 安装可参考[此处](https://www.cnblogs.com/billyzh/p/5913687.html) 11 | * neo4j 安装可参考[此处](https://www.cnblogs.com/ljhdo/archive/2017/05/19/5521577.html) 12 | > 注意:在python环境中需要安装 neo4j-driver 13 | 14 | ## 快速开始 15 | 1. 启动mongo服务 16 | 17 | `$ net start MongDB` 18 | > 注意:需要管理员权限 19 | 20 | 2. 启动neo4j服务 21 | 22 | `$ neo4j start` 23 | > 注意:需要在neo4j的安装目录下运行命令 24 | 25 | 3. 连接Neo4j Browser 26 | 27 | * 浏览器上访问 http://localhost:7474/ 28 | * 用户名和密码与代码中一致 `auth=("neo4j", "123")` 29 | 30 | 4. 运行run.py 31 | 32 | `$ cd WEB_qunaer/qunaer/spiders` 33 | 34 | `$ python run.py` 35 | 36 | ## 运行效果 37 | * **爬虫运行界面** 38 | ![1](https://github.com/xxrz/WEB_qunaer/blob/main/images/crawler.png "爬虫运行界面") 39 | * **mongdb存储去哪儿信息** 40 | ![2](https://github.com/xxrz/WEB_qunaer/blob/main/images/db_qunaer.png "去哪儿信息") 41 | * **mongdb存储三元组信息** 42 | ![3](https://github.com/xxrz/WEB_qunaer/blob/main/images/db_qunaerTriples.png "三元组信息") 43 | * **知识图谱结果** 44 | ![4](https://github.com/xxrz/WEB_qunaer/blob/main/images/Knowledge%20Graph.png "知识图谱") 45 | 46 | 47 | 48 | 最后感谢[WEB_KG](https://github.com/lixiang0/WEB_KG)! 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /images/Knowledge Graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/images/Knowledge Graph.png -------------------------------------------------------------------------------- /images/crawler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/images/crawler.png -------------------------------------------------------------------------------- /images/db_qunaer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/images/db_qunaer.png -------------------------------------------------------------------------------- /images/db_qunaerTriples.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/images/db_qunaerTriples.png -------------------------------------------------------------------------------- /qunaer.csv: -------------------------------------------------------------------------------- 1 | address,area,hot_num,intro,level,price,province,string,title 2 | 江苏省扬州市维扬区长春路118号,江苏·扬州·邗江区,6845,湖上园林的典型代表,5A景区,93,江苏,1.0,瘦西湖 3 | 陕西省渭南市华阴市境内,陕西·渭南·华阴市,6488,只有天在上,更无山与齐,5A景区,160,陕西,1.0,华山景区 4 | 河南省洛阳市栾川县城东,河南·洛阳·栾川县,6080,山势雄伟,美不胜收,5A景区,86.9,河南,0.72,老君山景区 5 | 海南省三亚市崖城镇南山村,海南·三亚·崖州区,5287,108米的海上三面观音,三亚不容错过之旅,5A景区,122,海南,0.76,南山文化旅游区 6 | 江苏省南京市江宁区宁丹大道18号,江苏·南京·江宁区,4805,佛教牛头禅的发祥地,4A景区,85.2,江苏,0.0,牛首山文化旅游区 7 | 安徽省黄山市黄山区黄山风景区,安徽·黄山·黄山区,4389,五岳归来不看山,黄山归来不看岳,5A景区,190,安徽,1.0,黄山风景区 8 | 海南省三亚市林旺镇海棠湾蜈支洲岛,海南·三亚·海棠区,4361,私人订制主取景地,5A景区,133,海南,0.86,蜈支洲岛 9 | 山东省济南市历下区经十一路18号,山东·济南·历下区,4132,遥望齐州九点烟,一泓海水杯中泻,4A景区,15,山东,0.86,千佛山 10 | 浙江省舟山市普陀区,浙江·舟山·普陀区,4121,人间清净地 | 朝圣看日出,5A景区,160,浙江,1.0,普陀山风景区 11 | 四川省乐山峨眉山市峨眉山风景名胜区,四川·乐山·峨眉山市,4112,云上金顶,天下峨眉,5A景区,160,四川,1.0,峨眉山 12 | 江苏省南京市玄武区和燕路168号,江苏·南京·玄武区,4040,惊险有趣的大型斗兽表演,,37,江苏,0.0,红山森林动物园 13 | 四川省成都市都江堰市青城山路,四川·成都·都江堰市,3834,青城山下白素贞,洞中千年修此身,5A景区,78,四川,0.96,青城山 14 | 四川省阿坝藏族羌族自治州九寨沟县漳扎镇九寨沟,四川·阿坝藏族羌族自治州·九寨沟县,3598,传说中的童话天堂,你还在犹豫么,5A景区,259,四川,1.0,九寨沟 15 | 福建省厦门市思明区鼓浪屿,福建·厦门·思明区,3560,琴之岛,乐之屿,5A景区,37.5,福建,0.9800000000000001,鼓浪屿 16 | 江苏省无锡市滨湖区灵山路1号,江苏·无锡·灵山胜境,3489,观释迦牟尼佛青铜立像,赏佛教胜景,5A景区,165,江苏,1.0,灵山大佛 17 | 湖北省宜昌市镇平路39号,湖北·宜昌,120,万里长江映彩霞,高山峡谷千秋坝,,65,湖北,0.0,葛洲坝船闸景区 18 | 广东省茂名高州市深镇境内,广东·茂名·高州市,118,有杜鹃林、千亩竹海、原始森林和天然瀑布群,,49,广东,0.72,高州仙人洞风景区 19 | 江西省赣州市龙南县武当镇,江西·赣州·龙南县,118,素有江西南大门之称。,4A景区,69,江西,0.0,南武当景区 20 | 湖北省武汉市洪山区磨山景区内。,湖北·武汉·武汉东湖风景区,116,千年灵秀地,武侠传奇城,5A景区,30,湖北,0.72,武汉东湖磨山 21 | 湖南省张家界市,湖南·张家界,116,湘鄂渝黔革命根据地的发源地和中心区域,,268,湖南,0.0,张家界 22 | 四川省广元市朝天区明月峡景区,四川·广元·朝天区,116,中国道路交通博物馆,道路交通发展活化石,4A景区,60.5,四川,0.0,明月峡 23 | 山东省烟台蓬莱市海滨路东8号,山东·烟台·蓬莱市,116,放漂心灵,体验澎湃激情,尽享探险之乐,5A景区,69,山东,0.72,八仙过海景区 24 | 山东省日照市五莲县文化路东首,山东·日照·五莲县,116,"山群削峻,高耸入云",,58,山东,0.78,日照九仙山 25 | 浙江省舟山市普陀山东南部的梅檀岭下,浙江·舟山·普陀区,116,普陀山重要的景点之一,处处都是景,,188,浙江,0.78,紫竹林 26 | 云南省丽江市宁蒗彝族自治县环湖公路,云南·丽江·宁蒗县,114,人间爱情的见证,,70,云南,0.0,情人树 27 | 浙江省嘉兴市南湖区海盐塘路188号(近南溪西路),浙江·嘉兴·南湖区,114,江南三大名湖之一,中共一大召开地,5A景区,20,浙江,0.72,嘉兴南湖景区 28 | 广西壮族自治区桂林市阳朔县321国道,广西·桂林·阳朔县,114,原始吊桥,可鸟瞰遇龙河,4A景区,35.7,广西,0.74,阳朔天籁蝴蝶泉 29 | 安徽省宣城市北郊,安徽·宣城,114,千古诗歌之山,4A景区,45,安徽,0.78,敬亭山 30 | 江苏省常州市溧阳市环湖东路1号(天目湖宾馆对面),江苏·常州·天目湖,114,充满着浓郁的乡村田园气息的乡村田园岛,5A景区,59,江苏,0.0,天目湖山水园 31 | 长治市壶关县桥上乡,山西·长治·上党区,112,因形貌营造了冬暖夏凉,清新润适的小气候,5A景区,165,山西,0.7,壶关太行八泉峡 32 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 33 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 34 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 35 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 36 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 37 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 38 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 39 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 40 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 41 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 42 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 43 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 44 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 45 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 46 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 47 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 48 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 49 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 50 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 51 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 52 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 53 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 54 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 55 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 56 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 57 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 58 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 59 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 60 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 61 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 62 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 63 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 64 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 65 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 66 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 67 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 68 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 69 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 70 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 71 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 72 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 73 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 74 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 75 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 76 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 77 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 78 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 79 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 80 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 81 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 82 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 83 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 84 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 85 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 86 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 87 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 88 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 89 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 90 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 91 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 92 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 93 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 94 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 95 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 96 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 97 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 98 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 99 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 100 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 101 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 102 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 103 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 104 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 105 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 106 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 107 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 108 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 109 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 110 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 111 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 112 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 113 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 114 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 115 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 116 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 117 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 118 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 119 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 120 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 121 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 122 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 123 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 124 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 125 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 126 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 127 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 128 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 129 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 130 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 131 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 132 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 133 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 134 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 135 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 136 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 137 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 138 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 139 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 140 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 141 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 142 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 143 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 144 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 145 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 146 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 147 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 148 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 149 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 150 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 151 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 152 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 153 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 154 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 155 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 156 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 157 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 158 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 159 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 160 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 161 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 162 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 163 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 164 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 165 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 166 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 167 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 168 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 169 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 170 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 171 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 172 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 173 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 174 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 175 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 176 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 177 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 178 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 179 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 180 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 181 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 182 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 183 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 184 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 185 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 186 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 187 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 188 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 189 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 190 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 191 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 192 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 193 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 194 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 195 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 196 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 197 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 198 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 199 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 200 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 201 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 202 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 203 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 204 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 205 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 206 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 207 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 208 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 209 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 210 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 211 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 212 | 山东省济南市长清区万德镇马套村,山东·济南·长清区,96,群山掩映,佛光庇佑,人杰地灵。,,22.4,山东,0.0,济南马套将军山旅游度假区 213 | 四川省遂宁市大英县中海大道888号,四川·遂宁·大英县,94,恒温海域随你四季畅游,4A景区,99,四川,0.9199999999999999,中国死海 214 | 广西省桂林市阳朔县南桂荔公路,广西·桂林·阳朔县,94,可兼水陆游览的溶洞,4A景区,55,广西,0.72,阳朔聚龙潭 215 | 山东省临沂市沂水县院东头乡四门洞,山东·临沂·萤火虫水洞·地下大峡谷旅游区,94,著名的地下萤火虫水洞神秘世界,4A景区,95,山东,0.86,萤火虫水洞 216 | 湖北省宜昌市夷陵区三斗坪镇,湖北·宜昌·夷陵区,94,高峡出平湖,5A景区,85,湖北,1.0,三峡大坝旅游区 217 | 陕西省延安市延川县,陕西·延安·延川县,94,一幅天然太极图,,71.5,陕西,0.0,乾坤湾 218 | 甘肃省平凉市崆峒区城西12公里处,甘肃·平凉·崆峒区,94,崆峒派驻地,小心七伤拳,5A景区,87,甘肃,1.0,崆峒山 219 | 河南省登封市,河南·郑州·登封市,92,以山岳自然风光为主的景区,,1.4,河南,0.76,三皇寨 220 | 四川省阿坝藏族羌族自治州,四川·阿坝藏族羌族自治州·茂县,92,冬长无夏、春秋相连,4A景区,39,四川,0.7,叠溪松坪沟风景区 221 | 广东省深圳市龙岗区,广东·深圳·西冲沙滩,92,感受无敌海景,体验野外生活的度假方式,,55,广东,0.0,西冲海滨旅游度假区 222 | 浙江省杭州市淳安县千岛湖镇淡竹王子山森林氧吧景区,浙江·杭州·千岛湖,92,远离雾霭,洗洗肺,静静心,,40,浙江,0.7,千岛湖森林氧吧 223 | 江苏省盐城市盐都区大纵湖景区,江苏·盐城·盐都区,92,"闯芦荡迷宫,观万千候鸟",4A景区,53,江苏,0.78,大纵湖 224 | 浙江省杭州临安市西天目乡,浙江·杭州·临安市,90,清肺森林浴 | 空气清新负氧离子爆表,4A景区,105,浙江,0.74,天目山 225 | 湖南省长沙市长沙县跳马乡石门村石燕湖,湖南·长沙·长沙县,90,湖南九寨人间瑶池,4A景区,149.5,湖南,0.74,石燕湖 226 | 安徽省黄山市休宁县齐云山镇岩前街018号,安徽·黄山·休宁县,90,丹霞地貌、摩崖石刻、山水田园,4A景区,34,安徽,0.72,齐云山景区 227 | -------------------------------------------------------------------------------- /qunaer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/qunaer/__init__.py -------------------------------------------------------------------------------- /qunaer/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/qunaer/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /qunaer/__pycache__/items.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/qunaer/__pycache__/items.cpython-36.pyc -------------------------------------------------------------------------------- /qunaer/__pycache__/pipelines.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/qunaer/__pycache__/pipelines.cpython-36.pyc -------------------------------------------------------------------------------- /qunaer/__pycache__/settings.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/qunaer/__pycache__/settings.cpython-36.pyc -------------------------------------------------------------------------------- /qunaer/items.py: -------------------------------------------------------------------------------- 1 | # Define here the models for your scraped items 2 | # 3 | # See documentation in: 4 | # https://docs.scrapy.org/en/latest/topics/items.html 5 | 6 | import scrapy 7 | 8 | 9 | class QunaerItem(scrapy.Item): 10 | # define the fields for your item here like: 11 | # name = scrapy.Field() 12 | # pass 13 | #创建数据结构 14 | title = scrapy.Field() 15 | level = scrapy.Field() 16 | area = scrapy.Field() 17 | address = scrapy.Field() 18 | province = scrapy.Field() 19 | string = scrapy.Field() 20 | intro = scrapy.Field() 21 | price = scrapy.Field() 22 | hot_num = scrapy.Field() -------------------------------------------------------------------------------- /qunaer/middlewares.py: -------------------------------------------------------------------------------- 1 | # Define here the models for your spider middleware 2 | # 3 | # See documentation in: 4 | # https://docs.scrapy.org/en/latest/topics/spider-middleware.html 5 | 6 | from scrapy import signals 7 | 8 | # useful for handling different item types with a single interface 9 | from itemadapter import is_item, ItemAdapter 10 | 11 | 12 | class QunaerSpiderMiddleware: 13 | # Not all methods need to be defined. If a method is not defined, 14 | # scrapy acts as if the spider middleware does not modify the 15 | # passed objects. 16 | 17 | @classmethod 18 | def from_crawler(cls, crawler): 19 | # This method is used by Scrapy to create your spiders. 20 | s = cls() 21 | crawler.signals.connect(s.spider_opened, signal=signals.spider_opened) 22 | return s 23 | 24 | def process_spider_input(self, response, spider): 25 | # Called for each response that goes through the spider 26 | # middleware and into the spider. 27 | 28 | # Should return None or raise an exception. 29 | return None 30 | 31 | def process_spider_output(self, response, result, spider): 32 | # Called with the results returned from the Spider, after 33 | # it has processed the response. 34 | 35 | # Must return an iterable of Request, or item objects. 36 | for i in result: 37 | yield i 38 | 39 | def process_spider_exception(self, response, exception, spider): 40 | # Called when a spider or process_spider_input() method 41 | # (from other spider middleware) raises an exception. 42 | 43 | # Should return either None or an iterable of Request or item objects. 44 | pass 45 | 46 | def process_start_requests(self, start_requests, spider): 47 | # Called with the start requests of the spider, and works 48 | # similarly to the process_spider_output() method, except 49 | # that it doesn’t have a response associated. 50 | 51 | # Must return only requests (not items). 52 | for r in start_requests: 53 | yield r 54 | 55 | def spider_opened(self, spider): 56 | spider.logger.info('Spider opened: %s' % spider.name) 57 | 58 | 59 | class QunaerDownloaderMiddleware: 60 | # Not all methods need to be defined. If a method is not defined, 61 | # scrapy acts as if the downloader middleware does not modify the 62 | # passed objects. 63 | 64 | @classmethod 65 | def from_crawler(cls, crawler): 66 | # This method is used by Scrapy to create your spiders. 67 | s = cls() 68 | crawler.signals.connect(s.spider_opened, signal=signals.spider_opened) 69 | return s 70 | 71 | def process_request(self, request, spider): 72 | # Called for each request that goes through the downloader 73 | # middleware. 74 | 75 | # Must either: 76 | # - return None: continue processing this request 77 | # - or return a Response object 78 | # - or return a Request object 79 | # - or raise IgnoreRequest: process_exception() methods of 80 | # installed downloader middleware will be called 81 | return None 82 | 83 | def process_response(self, request, response, spider): 84 | # Called with the response returned from the downloader. 85 | 86 | # Must either; 87 | # - return a Response object 88 | # - return a Request object 89 | # - or raise IgnoreRequest 90 | return response 91 | 92 | def process_exception(self, request, exception, spider): 93 | # Called when a download handler or a process_request() 94 | # (from other downloader middleware) raises an exception. 95 | 96 | # Must either: 97 | # - return None: continue processing this exception 98 | # - return a Response object: stops process_exception() chain 99 | # - return a Request object: stops process_exception() chain 100 | pass 101 | 102 | def spider_opened(self, spider): 103 | spider.logger.info('Spider opened: %s' % spider.name) 104 | -------------------------------------------------------------------------------- /qunaer/pipelines.py: -------------------------------------------------------------------------------- 1 | # Define your item pipelines here 2 | # 3 | # Don't forget to add your pipeline to the ITEM_PIPELINES setting 4 | # See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html 5 | 6 | 7 | # useful for handling different item types with a single interface 8 | import logging 9 | import os 10 | import uuid 11 | import pymongo 12 | from scrapy.selector import Selector 13 | from neo4j import GraphDatabase 14 | import numpy as np 15 | 16 | logfile_name = uuid.uuid1() 17 | if not os.path.exists('logs/'): 18 | os.mkdir('logs/') 19 | logging.basicConfig(filename=f'logs/{logfile_name}.log', filemode='a+', 20 | format='%(levelname)s - %(asctime)s - %(message)s', datefmt='%d-%b-%y %H:%M:%S') 21 | 22 | class QunaerPipeline: 23 | # 建立数据库 24 | db = pymongo.MongoClient("mongodb://127.0.0.1:27017/")["db_travel"] 25 | db_qunaer = db['db_qunaer'] 26 | db_triples = db['db_qunaerTriples'] 27 | driver = GraphDatabase.driver( 28 | "bolt://localhost:7687", auth=("neo4j", "123"),encrypted=False) 29 | 30 | def add_node(self, tx, name1, relation, name2): 31 | tx.run("MERGE (a:Node {name: $name1}) " 32 | "MERGE (b:Node {name: $name2}) " 33 | "MERGE (a)-[:"+relation+"]-> (b)", 34 | name1=name1, name2=name2) 35 | 36 | def process_item(self, item, spider): 37 | #填入数据库 38 | self.db_qunaer.insert_one( 39 | { 40 | 'title': item['title'] , 41 | 'level': item['level'], 42 | 'area': item['area'], 43 | 'address': item['address'], 44 | 'province' :item['province'], 45 | 'string': item['string'], 46 | 'intro': item['intro'], 47 | 'price': item['price'], 48 | 'hot_num': item['hot_num'] 49 | }) 50 | 51 | # 处理三元组 52 | entity = item['title'] 53 | attrs = ['景区名字','景区等级','地区','地址','省份','热度','简介','价格','月销'] 54 | values = [item['title'],item['level'],item['area'],item['address'],item['province'],item['string'],item['intro'],item['price'],item['hot_num']] 55 | if len(attrs) != len(values): 56 | return 57 | # indexs = list(np.arange(1,len(attrs),1)) 58 | with self.driver.session() as session: 59 | try: 60 | for attr, value in zip(attrs, values,): 61 | # index = int(index) 62 | entity = str(entity) 63 | attr = str(attr) 64 | value = str(value) 65 | try: 66 | logging.warning(entity + '_' + attr + '_' + value) 67 | self.db_triples.insert_one({ 68 | "_id": entity + '_' + attr + '_' + value, 69 | "entity": entity, 70 | "attr": attr, 71 | "value": value, } 72 | ) 73 | except pymongo.errors.DuplicateKeyError: 74 | pass 75 | session.write_transaction( 76 | self.add_node, entity, attr, value) 77 | except Exception: 78 | logging.error('\n---'.join(attrs) + 79 | '\n_________________' + '\n---'.join(values)) 80 | print(item) 81 | return item 82 | -------------------------------------------------------------------------------- /qunaer/settings.py: -------------------------------------------------------------------------------- 1 | # Scrapy settings for qunaer project 2 | # 3 | # For simplicity, this file contains only settings considered important or 4 | # commonly used. You can find more settings consulting the documentation: 5 | # 6 | # https://docs.scrapy.org/en/latest/topics/settings.html 7 | # https://docs.scrapy.org/en/latest/topics/downloader-middleware.html 8 | # https://docs.scrapy.org/en/latest/topics/spider-middleware.html 9 | 10 | BOT_NAME = 'qunaer' 11 | 12 | SPIDER_MODULES = ['qunaer.spiders'] 13 | NEWSPIDER_MODULE = 'qunaer.spiders' 14 | 15 | 16 | # Crawl responsibly by identifying yourself (and your website) on the user-agent 17 | #USER_AGENT = 'qunaer (+http://www.yourdomain.com)' 18 | 19 | # Obey robots.txt rules 20 | ROBOTSTXT_OBEY = False 21 | 22 | # Configure maximum concurrent requests performed by Scrapy (default: 16) 23 | #CONCURRENT_REQUESTS = 32 24 | 25 | # Configure a delay for requests for the same website (default: 0) 26 | # See https://docs.scrapy.org/en/latest/topics/settings.html#download-delay 27 | # See also autothrottle settings and docs 28 | DOWNLOAD_DELAY = 1 29 | # The download delay setting will honor only one of: 30 | #CONCURRENT_REQUESTS_PER_DOMAIN = 16 31 | #CONCURRENT_REQUESTS_PER_IP = 16 32 | 33 | # Disable cookies (enabled by default) 34 | #COOKIES_ENABLED = False 35 | 36 | # Disable Telnet Console (enabled by default) 37 | #TELNETCONSOLE_ENABLED = False 38 | 39 | # Override the default request headers: 40 | #DEFAULT_REQUEST_HEADERS = { 41 | # 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 42 | # 'Accept-Language': 'en', 43 | #} 44 | DEFAULT_REQUEST_HEADERS = { 45 | 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 46 | 'Accept-Language': 'en', 47 | 'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36' 48 | } 49 | 50 | # Enable or disable spider middlewares 51 | # See https://docs.scrapy.org/en/latest/topics/spider-middleware.html 52 | #SPIDER_MIDDLEWARES = { 53 | # 'qunaer.middlewares.QunaerSpiderMiddleware': 543, 54 | #} 55 | 56 | # Enable or disable downloader middlewares 57 | # See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html 58 | #DOWNLOADER_MIDDLEWARES = { 59 | # 'qunaer.middlewares.QunaerDownloaderMiddleware': 543, 60 | #} 61 | 62 | # Enable or disable extensions 63 | # See https://docs.scrapy.org/en/latest/topics/extensions.html 64 | #EXTENSIONS = { 65 | # 'scrapy.extensions.telnet.TelnetConsole': None, 66 | #} 67 | 68 | # Configure item pipelines 69 | # See https://docs.scrapy.org/en/latest/topics/item-pipeline.html 70 | ITEM_PIPELINES = { 71 | 'qunaer.pipelines.QunaerPipeline': 300, 72 | } 73 | 74 | # Enable and configure the AutoThrottle extension (disabled by default) 75 | # See https://docs.scrapy.org/en/latest/topics/autothrottle.html 76 | #AUTOTHROTTLE_ENABLED = True 77 | # The initial download delay 78 | #AUTOTHROTTLE_START_DELAY = 5 79 | # The maximum download delay to be set in case of high latencies 80 | #AUTOTHROTTLE_MAX_DELAY = 60 81 | # The average number of requests Scrapy should be sending in parallel to 82 | # each remote server 83 | #AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0 84 | # Enable showing throttling stats for every response received: 85 | #AUTOTHROTTLE_DEBUG = False 86 | 87 | # Enable and configure HTTP caching (disabled by default) 88 | # See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings 89 | #HTTPCACHE_ENABLED = True 90 | #HTTPCACHE_EXPIRATION_SECS = 0 91 | #HTTPCACHE_DIR = 'httpcache' 92 | #HTTPCACHE_IGNORE_HTTP_CODES = [] 93 | #HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage' 94 | -------------------------------------------------------------------------------- /qunaer/spiders/__init__.py: -------------------------------------------------------------------------------- 1 | # This package will contain the spiders of your Scrapy project 2 | # 3 | # Please refer to the documentation for information on how to create and manage 4 | # your spiders. 5 | -------------------------------------------------------------------------------- /qunaer/spiders/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/qunaer/spiders/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /qunaer/spiders/__pycache__/qunaer.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xxrz/WEB_qunaer/c966eded67f5f627aac4a85c1a9feccb9e4352d9/qunaer/spiders/__pycache__/qunaer.cpython-36.pyc -------------------------------------------------------------------------------- /qunaer/spiders/qunaer.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | import scrapy 3 | from ..items import QunaerItem 4 | import parsel 5 | 6 | 7 | class QunaerSpider(scrapy.Spider): 8 | name = 'qunaer' 9 | allowed_domains = ['piao.qunar.com'] 10 | url = 'https://piao.qunar.com/ticket/list.htm?keyword=%E7%83%AD%E9%97%A8%E6%99%AF%E7%82%B9®ion=&from=mps_search_suggest&subject=%E8%87%AA%E7%84%B6%E9%A3%8E%E5%85%89&page={}&sku=' 11 | page = 1 12 | 13 | def start_requests(self): 14 | for i in range(0, 500, 30): 15 | url = self.url.format(i) 16 | yield scrapy.Request( 17 | url=url, 18 | callback=self.parse 19 | ) 20 | 21 | def parse(self, response): 22 | items = QunaerItem() 23 | selector = parsel.Selector(response.text) 24 | lists = selector.css('#search-list .sight_item') 25 | for list in lists: 26 | items['title'] = list.css('.sight_item_caption a::attr(title)').get() # 景区名字 27 | items['level'] = list.css('.sight_item_info .level::text').get() # 景区等级 28 | items['area'] = list.css('.area a::attr(title)').get() # 地区 29 | items['address'] = list.css('.address span::attr(title)').get() # 地址 30 | items['province'] = items['area'].split("·")[0] 31 | string = list.css('.product_star_level em::attr(title)').get() # 热度 32 | items['string']= float(string.strip('热度: ')) 33 | items['intro']= list.css('.intro::attr(title)').get() # 简介 34 | items['price'] = list.css('.sight_item_price em::text').get() # 价格 35 | items['hot_num'] = list.css('.hot_num::text').get() # 月销 36 | yield items -------------------------------------------------------------------------------- /run.py: -------------------------------------------------------------------------------- 1 | from scrapy import cmdline 2 | 3 | cmdline.execute('scrapy crawl qunaer -o qunaer.csv'.split()) -------------------------------------------------------------------------------- /scrapy.cfg: -------------------------------------------------------------------------------- 1 | # Automatically created by: scrapy startproject 2 | # 3 | # For more information about the [deploy] section see: 4 | # https://scrapyd.readthedocs.io/en/latest/deploy.html 5 | 6 | [settings] 7 | default = qunaer.settings 8 | 9 | [deploy] 10 | #url = http://localhost:6800/ 11 | project = qunaer 12 | --------------------------------------------------------------------------------