我试图在网页上找到国家/城市。所以我使用了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。
如果我错了,请指导。
提前谢谢你:)
答案 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了解更多详情。
接下来,我从命令行运行命令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
,我终于可以获得所需的输出。