|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在网上的博客里找了几个api但都已经不更新了
我找到一个链接,这个链接浏览器能正常访问,但我用爬虫爬不下来
http://t.weather.sojson.com/api/weather/city/101010100
代码和报错如下
- import requests
- header = {
- 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
- 'Accept-Encoding': 'gzip, deflate',
- 'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
- 'Cache-Control': 'max-age=0',
- 'Host': 't.weather.sojson.com',
- 'Proxy-Connection': 'keep-alive',
- 'Upgrade-Insecure-Requests': '1',
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54',
- }
- res = requests.get('http://t.weather.sojson.com/api/weather/city/101010100', headers=header)
复制代码
- Traceback (most recent call last):
- File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connection.py", line 174, in _new_conn
- conn = connection.create_connection(
- File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\util\connection.py", line 72, in create_connection
- for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
- File "C:\ProgramData\Anaconda3\lib\socket.py", line 954, in getaddrinfo
- for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
- socket.gaierror: [Errno 11001] getaddrinfo failed
- During handling of the above exception, another exception occurred:
- Traceback (most recent call last):
- File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 703, in urlopen
- httplib_response = self._make_request(
- File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 398, in _make_request
- conn.request(method, url, **httplib_request_kw)
- File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connection.py", line 239, in request
- super(HTTPConnection, self).request(method, url, body=body, headers=headers)
- File "C:\ProgramData\Anaconda3\lib\http\client.py", line 1285, in request
- self._send_request(method, url, body, headers, encode_chunked)
- File "C:\ProgramData\Anaconda3\lib\http\client.py", line 1331, in _send_request
- self.endheaders(body, encode_chunked=encode_chunked)
- File "C:\ProgramData\Anaconda3\lib\http\client.py", line 1280, in endheaders
- self._send_output(message_body, encode_chunked=encode_chunked)
- File "C:\ProgramData\Anaconda3\lib\http\client.py", line 1040, in _send_output
- self.send(msg)
- File "C:\ProgramData\Anaconda3\lib\http\client.py", line 980, in send
- self.connect()
- File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connection.py", line 205, in connect
- conn = self._new_conn()
- File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connection.py", line 186, in _new_conn
- raise NewConnectionError(
- urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x0000021C5AD86D60>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed
- During handling of the above exception, another exception occurred:
- Traceback (most recent call last):
- File "C:\ProgramData\Anaconda3\lib\site-packages\requests\adapters.py", line 440, in send
- resp = conn.urlopen(
- File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 785, in urlopen
- retries = retries.increment(
- File "C:\ProgramData\Anaconda3\lib\site-packages\urllib3\util\retry.py", line 592, in increment
- raise MaxRetryError(_pool, url, error or ResponseError(cause))
- urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='t.weather.sojson.com', port=80): Max retries exceeded with url: /api/weather/city/101010100 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000021C5AD86D60>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
- During handling of the above exception, another exception occurred:
- Traceback (most recent call last):
- File "c:\Users\wldcmzy\Desktop\asdf.txt.py", line 14, in <module>
- res = requests.get('http://t.weather.sojson.com/api/weather/city/101010100', headers=header)
- File "C:\ProgramData\Anaconda3\lib\site-packages\requests\api.py", line 75, in get
- return request('get', url, params=params, **kwargs)
- File "C:\ProgramData\Anaconda3\lib\site-packages\requests\api.py", line 61, in request
- return session.request(method=method, url=url, **kwargs)
- File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", line 529, in request
- resp = self.send(prep, **send_kwargs)
- File "C:\ProgramData\Anaconda3\lib\site-packages\requests\sessions.py", line 645, in send
- r = adapter.send(request, **kwargs)
- File "C:\ProgramData\Anaconda3\lib\site-packages\requests\adapters.py", line 519, in send
- raise ConnectionError(e, request=request)
- requests.exceptions.ConnectionError: HTTPConnectionPool(host='t.weather.sojson.com', port=80): Max retries exceeded with url: /api/weather/city/101010100 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000021C5AD86D60>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))
复制代码
|
|