使用代理链接对被阻止的网站进行网络抓取

时间:2019-01-25 09:25:34

标签: python web-scraping beautifulsoup

我正试图从阻止了我的IP地址的网站中提取数据,以下是我尝试的两种错误提示方法

方法1-我直接将代理url解析网页

from urllib.request import urlopen
from bs4 import BeautifulSoup
import lxml
import time 

html= urlopen('http://s-s.www.enfsolar.com.prx.proxyunblocker.org/')
soup = BeautifulSoup(html, 'lxml')
all_links= soup.find_all('a')
print (all_links)

错误-urllib.error.HTTPError:HTTP错误403:禁止

方法2-我在这里传递代理ip地址(根据youtube视频)

import urllib.request
from bs4 import BeautifulSoup
import lxml
import requests

proxies= { "https":'191.252.196.160:8080',
  "https":'191.252.196.160:8080'    
 }
url ='https://www.enfsolar.com/'
r = requests.get(url, proxies=proxies)
soup = BeautifulSoup(r, 'lxml')
all_links= soup.find_all('a')
print (all_links)

错误-request.exceptions.ProxyError:HTTPSConnectionPool(host ='www.enfsolar.com',port = 443):URL超过最大重试次数:/(由ProxyError('无法连接到代理服务器。'引起,',NewConnectionError( ':建立新连接失败:[WinError 10061]无法建立连接,因为目标计算机主动拒绝了该连接')))

我是网络爬虫的新手,请先感谢我知道如何使用代理。

1 个答案:

答案 0 :(得分:0)

您使用的代理看起来像是公开的代理,它们也不可靠,而且经常失效。您所犯的错误就是这样。您无法连接到代理,请尝试使用其他代理或更好的代理。一美元就能买到一个。还有一点请注意,您有一个具有两个相同键的字典,应该改为这样。

{ "https":'191.252.196.160:8080',
 "http":'191.252.196.160:8080'    
 }