Проблема с Crawler с помощью urllib.request в Python 3 - PullRequest
0 голосов
/ 17 октября 2018

Я новичок в области python и столкнулся с проблемами при попытке попрактиковаться в crawler с python 3. На самом деле я не смог посетить некоторые веб-сайты из-за местоположения, в котором я остановился.Это означает, что приведенные ниже коды не могут работать.

import requests

response = requests.get('https://www.google.com')
print(response.status_code)

Ошибка была показана ниже.

ConnectionError: HTTPSConnectionPool(host='www.google.com', port=443): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x1045892e8>: Failed to establish a new connection: [Errno 60] Operation timed out'))

Поэтому я использовал VPS & SS, чтобы сделать это, и я мог сделать это черезмой браузер (Safari & Chrome) после этого успешно.Однако, когда я включил SS и попытался использовать crawler, у меня не получилось.Мой код был показан ниже, и 000.000.000.000:000 представляет адрес и порт моего VPS.

import requests

url = 'https://www.google.com'
proxies = {
    "http": 'http://000.000.000.000:000', 
    "https": 'https://000.000.000.000:000'
}
response = requests.get(url,proxies=proxies)

print(response.json())

И ошибка, которую я получил, была показана ниже.

ProxyError: HTTPSConnectionPool(host='www.google.com', port=000): Max retries exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', RemoteDisconnected('Remote end closed connection without response')))

Я считаю, чтовозможно, проблема возникла из-за отсутствия заголовка, поэтому я отредактировал свой код, а другой мой код был показан ниже.

import urllib.request as urlreq
import requests

ph = urlreq.ProxyHandler({'https': 'https://000.000.000.000:000'})
oper = urlreq.build_opener(ph)

urlreq.install_opener(oper)
res = requests.get("https://www.google.com", headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36'})
print(res.read())

Но я все еще не смог решить эту проблему, и я получил сообщение об ошибкениже.

ConnectionError: HTTPSConnectionPool(host='www.google.com', port=000): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x1044f5ba8>: Failed to establish a new connection: [Errno 60] Operation timed out'))

Я пытался запустить приведенные выше коды при включении и выключении SS, но все равно не смог добиться успеха.Может кто-нибудь сказать мне, в чем проблема и как решить эту проблему?

...