提问者:小点点

Python3.7:连接错误:HTTPSConnectionPool(host='ww.google.com',port=443):


我想从google.com刮网页结果。我按照这个问题的第一个答案,用Python进行Google搜索网页抓取。不幸的是,我得到连接错误。我碰巧也检查了其他网站,它没有连接。是因为企业代理设置的原因吗?

请注意,我正在使用虚拟env“Webscratch”。

from urllib.parse import urlencode, urlparse, parse_qs

from lxml.html import fromstring
from requests import get

raw = get("https://www.google.com/search?q=StackOverflow").text
page = fromstring(raw)

for result in page.cssselect(".r a"):
    url = result.get("href")
    if url.startswith("/url?"):
        url = parse_qs(urlparse(url).query)['q']
    print(url[0])

Raw=get("https://www.google.com/search?q=StackOverflow"). text Traceback(最近一次调用):

文件 “”,第 1 行,原始 = get(“https://www.google.com/search?q=StackOverflow”).text

在get返回请求('get', url,params=params,**kwargs)的第75行中,文件c:\user\appdata\local\Program\python\python37\webscraping\lib\site-pack\api.py

请求返回session.request(method=method,url=url,**kwargs)中文件“c:\ users \ appdata \ local \ programs \ python \ python 37 \ web scraping \ lib \ site-packages \ requests \ API . py”第60行

文件 “c:\users\appdata\local\programs\python\python37\webscraping\lib\site-packages\requests\sessions.py”,第 524 行,在请求中 resp = self.send(prep, **send_kwargs)

文件“c:\ users \ appdata \ local \ programs \ python \ python 37 \ web scraping \ lib \ site-packages \ requests \ sessions . py”,第637行,在send r = adapter.send(request,**kwargs)中

在发送引发连接错误(e,请求=请求)中,文件“c:\user\appdata\local\程序\python\python37\webscraping\lib\site-packes\adapters.py”,第516行

connection error:https connection pool(host = ' www . Google . com ',port = 443):URL:/search超过了最大重试次数?q=StackOverflow(由NewConnectionError('引起

请指教。谢谢

编辑:我尝试 google.com,它失败了。

import os
hostname = "https://www.google.com" #example
response = os.system("ping -c 1 " + hostname)

#and then check the response...
if response == 0:
  print(hostname, 'is up!')
else:
  print(hostname, 'is down!')
 

https://www.google.com倒下了!


共1个答案

匿名用户

我认为由于您的代理设置,您会收到此错误。尝试在命令提示符下运行以下命令之一

set http_proxy=http://proxy_address:port
set http_proxy=http://user:password@proxy_address:port
set https_proxy=https://proxy_address:port
set https_proxy=https://user:password@proxy_address:port