我们在做爬虫的过程中,经常会遇到这样的情况:最初爬虫正常运行,正常抓取数据,一切看起来都是那么的美好,然而一杯茶的功夫可能就会出现错误,比如403 Forbidden。出现这样的原因往往是网站采取了一些反爬虫的措施,比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了某个阈值,那么服务器会直接拒绝服务,返回一些错误信息。这时候,代理IP就派上用场了。
很多新手朋友可能对如何使用代理IP不太了解,就拿当下最流行的爬虫语言Python来说吧。
一、urllib代理设置:
from urllib.error import URLError
from urllib.request import ProxyHandler,build_opener
proxy=123.58.10.36:8080 #使用本地代理
#proxy=username:[email protected]:8080 #购买代理
proxy_handler=ProxyHandler({
http:
https:
})
opener=build_opener(proxy_handler)
try:
response=opener.open(http://httpbin.org/get) #测试ip的网址
print(response.read().decode(utf-8))
except URLError as e:
print(e.reason)
二、requests代理设置:
import requests
proxy=123.58.10.36:8080 #本地代理
#proxy=username:[email protected]:8080
proxies={
http:
https:
}
try:
response=requests.get(http://httpbin.org/get,proxies=proxies)
print(response.text)
except requests.exceptions.ConnectionError as e:
print(错误:,e.args)
三、Selenium代理设置:
from selenium import webdriver
proxy=123.58.10.36:8080
chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument(--proxy-server=
browser=webdriver.Chrome(chrome_options=chrome_options)
browser.get(http://httpbin.org/get)