Heim > Fragen und Antworten > Hauptteil
Ich möchte ein kleines Programm schreiben, um die Webseite http://www.sse.com.cn/assortm automatisch herunterzuladen. Der darin enthaltene Download-Link lautet http://query.sse.com.cn/secur.
Verwenden Sie urllib, um 403 aufzufordern, also habe ich den Benutzeragenten hinzugefügt und 200 zurückgegeben, aber bei der Verwendung von urlretrieve wurde die Antwort online nicht gefunden.
Der Code lautet wie folgt:
aus der URL-Importanfrage
aus Datum/Uhrzeit Import Datum/Uhrzeit
url = 'http://query.sse.com.cn/secur...'
user_agent = 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/55.0.2883.95 Mobile Safari/537.36'
myheaders = {'Benutzer – Agent': user_agent}
req = request.Request(url, headers=myheaders)
local = "/Users/Mty/Downloads/s_data/" + str(datetime.now().date()) + " .xls"
request.urlretrieve(req, local)
Fehlerbericht:
Traceback (letzter Aufruf zuletzt):
Datei „/Users/Mty/PycharmProjects/get_data/date.py“, Zeile 20, in <module>
request.urlretrieve(req, local)
Datei „/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/request.py“, Zeile 186, in urlretrieve
url_type, path = splittype(url)
Datei „/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/urllib/parse.py“, Zeile 861, im Splittype
match = _typeprog.match(url)
TypeError: erwartete Zeichenfolge oder byteähnliches Objekt
淡淡烟草味2017-05-18 10:49:01
使用request.build_opener 添加head可解决
myheaders = [('User - Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.17'
' (KHTML, like Gecko) Version/3.1 Safari/525.17'),]
opener = request.build_opener()
opener.addheaders = myheaders
request.install_opener(opener)
request.urlretrieve(url, local)