我正试图从这个网址上搜索纽约证券交易所网站的数据:
nyse = http://www1.nyse.com/about/listed/IPO_Index.html
使用请求,我已经按照以下方式设置了我的请求:
page = requests.get(nyse)
soup = BeautifulSoup(page.text)
tables = soup.findAll('table')
test = pandas.io.html.read_html(str(tables))
但是,我一直收到此错误
'ValueError:stat:路径对于Windows来说太长了
我不明白如何解释这个错误,而且解决了这个问题。我在这个区域看到了另一个帖子(Copy a file with a too long path to another directory in Python),但我不完全理解这个解决方法,并且在这种情况下我不确定哪个路径是问题。
错误是在test = pandas.io ....行抛出但是没有明确的路径定义,我在本地存储表。我需要使用pywin32吗?为什么此错误仅针对某些网址而非其他网址显示?我该如何解决这个问题?
供参考,我使用的是python 3.4
更新: 该错误仅出现在纽约网站上,而不是其他我正在抓取的网站。在所有情况下,我都在进行str(表)转换。
答案 0 :(得分:0)
pandas read_html方法接受urls,文件或原始HTML字符串作为其第一个参数。看起来它似乎试图将str(tables)参数解释为一个URL - 这当然会很长并且会超出Windows显然有的限制。
您确定str(tables)会生成原始的,可解析的HTML吗?表看起来像是一个抽象节点对象列表 - 似乎调用str()就不会产生你正在寻找的东西。