Python Geograpy没有在美国找到城市

时间:2017-04-10 11:58:47

标签: python nlp nltk

我试图在网页上找到国家/城市。所以我使用了Geograpy。 但它不能正常工作。 注意:给定的网站包含美国的所有州 网站= http://state.1keydata.com/

import geograpy
url='http://state.1keydata.com/'
place=geograpy.get_place_context(url=url)
print place.countries  #[]
print place.cities #[]

我安装了所有必需的软件包,例如georapy,nltk(all) 我正在使用Anaconda。

如果我错了,请指导。

提前谢谢你:)

3 个答案:

答案 0 :(得分:1)

您要测试的页面是带有错误证书的站点,这导致了我没有尝试解决的其他问题。相反,我正在使用: https://en.wikipedia.org/wiki/U.S._state

为例。

作为geograpy3的提交者来重现您的问题,我在最新的geograpy3 https://github.com/somnathrakshit/geograpy3/blob/master/tests/test_extractor.py中添加了一个测试:

def testStackoverflow43322567(self):
        '''
        see https://stackoverflow.com/questions/43322567/python-geograpy-is-not-finding-cities-in-usa
        '''
        url='https://en.wikipedia.org/wiki/U.S._state'
        e=Extractor(url=url)
        places=e.find_geoEntities()
        self.check(places,['Alabama','Virginia','New York'])

答案 1 :(得分:0)

您测试的页面不包含任何城市或国家/地区名称,因此您获得空结果并不奇怪。

答案 2 :(得分:0)

我发现手动重新安装所有必需的软件包,以及向地理库文件添加调整就可以了。 Check this了解更多详情。

  1. LXML
  2. beautifulsoup
  3. 接下来,我从命令行运行命令python nltk.download()

    执行这些步骤后,我收到了另一条错误消息:

    Traceback (most recent call last):
      File "ExtractLocation_geograpy.py", line 5, in <module>
        places = geograpy.get_place_context(text = text1)
      File "C:\Users\Avardhan\Documents\CVS_POC\.env\lib\site-packages\geograpy\__init__.py", line 11, in get_place_context
        pc.set_cities()
      File "C:\Users\Avardhan\Documents\CVS_POC\.env\lib\site-packages\geograpy\places.py", line 174, in set_cities
        self.country_cities[country.name] = []
    

    country.name替换为country_name,我终于可以获得所需的输出。