我正在尝试用python3.x下载一个CSV文件 文件的路径是:https://www.nseindia.com/content/fo/fo_mktlots.csv
我找到了三种方法。三种方法中只有一种有效。我想知道为什么我做错了什么。在
方法1:(不成功)
import pandas as pd
mytable = pd.read_table("https://www.nseindia.com/content/fo/fo_mktlots.csv",sep=",")
print(mytable)
但我得到了以下错误:
- HTTPError: HTTP Error 403: Forbidden
方法二:(不成功)
from urllib.request import Request, urlopen
url='https://www.nseindia.com/content/fo/fo_mktlots.csv'
url_request = Request(url, headers={'User-Agent': 'Mozilla/5.0'})
html = urlopen(url_request ).read()
得到了和以前一样的错误:
- HTTPError: HTTP Error 403: Forbidden
方法三:(成功)
import requests
import pandas as pd
url = 'https://www.nseindia.com/content/fo/fo_mktlots.csv'
r = requests.get(url)
df = pd.read_csv(StringIO(r.text))
我还可以使用Excel VBA打开文件,如下所示:
Workbooks.Open Filename:="https://www.nseindia.com/content/fo/fo_mktlots.csv"
还有,有没有其他方法可以做到这一点呢?在
该网站试图防止内容抓取。在
问题不在于你做错了什么,而在于如何配置web服务器以及它在各种情况下的行为。在
但是要克服刮取保护,创建定义良好的http请求头,最好的方法是发送一组真正的web浏览器所做的http报头。在
在这里,它使用最小集:
可以将urllib传递给pandas:
^{pr2}$相关问题 更多 >
编程相关推荐