爬虫学习,隐藏代理

爬虫学习,隐藏代理


我们在做爬虫的过程中有时会遇到这样的情况:最初爬虫正常运行,正常抓取数据然而一杯茶的功夫可能就会出现错误,比如403 Forbidden;出现这样的原因往往是网站采取了一些反爬虫的措施,比如,服务器会检测某个IP在单位时间内的请求次数,如果超过了某个阈值,那么服务器会直接拒绝服务,返回一些错误信息。这时候,隐藏,代理就派上用场了。

1.修改User-Agent

head = {}
head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'

req = urllib.request.Request(url,data,head)
response = urllib.request.urlopen(req)

也可以使用requests库
安装requests库:pip install requests

链接: Requests库.

2.使用代理

转: httpbin.org的使用.

全网代理IP.
西刺免费代理IP.
使用高匿ip,多试几个,有可能不成功。

import urllib.request

url = "http://httpbin.org/get?show_env=1"

proxy_support = urllib.request.ProxyHandler({"http":"121.237.148.207:3000"})

opener = urllib.request.build_opener(proxy_support)

head = {}
head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'

req = urllib.request.Request(url,headers = head)
response = opener.open(req)
#使用install_opener()是一劳永逸的做法,我们使用urlopen()也会直接使用我们定制的代理
#urllib.request.install_opener(opener)
#response = urllib.request.urlopen(req)

html = response.read().decode('utf-8')

print(html)

输出结果:

{
  "args": {
    "show_env": "1"
  }, 
  "headers": {
    "Accept-Encoding": "identity", 
    "Cache-Control": "max-age=0", 
    "Host": "httpbin.org", 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36", 
    "X-Amzn-Trace-Id": "Root=1-5eaadea7-ee5a5c6007977d5673c60e80", 
    "X-Forwarded-For": "121.237.148.207", 
    "X-Forwarded-Port": "80", 
    "X-Forwarded-Proto": "http"
  }, 
  "origin": "121.237.148.207", 
  "url": "http://httpbin.org/get?show_env=1"
}
引用\[1\]:在进行Python爬虫时,有时候我们需要使用代理隐藏我们的真实身份。使用代理可以让我们的请求看起来像是来自不同的IP地址,从而避免被网站封禁或限制访问。要在Python爬虫中添加代理,我们可以使用第三方库requests或者使用Selenium来实现。引用\[2\]:使用requests库添加代理的方法是在发送请求时,通过设置proxies参数来指定代理服务器的地址和端口号。例如,可以使用以下代码来添加代理:proxies = {'http': 'http://proxy_ip:proxy_port', 'https': 'https://proxy_ip:proxy_port'} response = requests.get(url, proxies=proxies)。引用\[3\]:使用Selenium添加代理的方法是通过设置浏览器的代理选项来实现。可以使用以下代码来添加代理:from selenium import webdriver proxy_ip = 'proxy_ip' proxy_port = 'proxy_port' options = webdriver.ChromeOptions() options.add_argument('--proxy-server=http://{}:{}'.format(proxy_ip, proxy_port)) driver = webdriver.Chrome(chrome_options=options) driver.get(url)。这样,我们就可以在Python爬虫中添加代理隐藏我们的真实身份。 #### 引用[.reference_title] - *1* [Python爬虫篇:爬虫笔记合集](https://blog.csdn.net/AI19970205/article/details/124282549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python学习三: 爬虫高级技巧 与 模拟实战练习](https://blog.csdn.net/qq_33081367/article/details/81564373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值