python 代理的使用

这里分享一个测试ip的网址     http://ip.filefab.com/index.php

 

scrapy 随机请求头和代理ip的使用原理

import random

# 添加一个中间键 class User_AgentMiddleware(object): def __init__(self): self.user_agent = [ "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1", "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24", ]
   # scrapy抓取前修改请求头 def process_request(self, request, spider): # 添加代理 request.meta['proxy'] = 'http://119.42.70.216:8080' # 这里不区分 http还是https代理 # 添加随机请求头 ua = random.choice(self.user_agent) request.headers['User-Agent'] = ua # 默认返回None, 继续执行下一步操作 # Response: 直接返回(没有经过process_response, 和process_exception) # Request: 重新进行调用本次process_request的请求 # IgnoreRequest:
  # 判断应抓到网页的状态 def process_response(self, request, response, spider): print(response.headers) if response.status != 200: return request else: return response # 必须有返回值 # request: 重新进行调用本次process_request的请求 # response:返回源码 # IgnoreRequest: 抛出异常, 则Request的errorback()方法被回调。 如异常没被处理, 则会被忽略

 

request中添加代理

 

# 首先确认代理的类型 是http还是https的来判断proxie的取值

proxie = {
    "http": "http://113.71.211.184:8197",
}


respons = requests.get('http://ip.filefab.com/index.php', proxies=proxie)
doc = etree.HTML(respons.text)
print(doc.xpath('.//h1[@id="ipd"]/span/text()'))

 

转载于:https://www.cnblogs.com/yijian001/p/9015977.html

### 如何在 Python 中设置和使用代理服务器 #### 使用 `requests` 库设置 HTTP 代理 当利用 `requests` 进行网络请求时,可以通过传递一个字典给 proxies 参数来轻松地配置HTTP 或 HTTPS 请求所使用代理。这个方法非常适合于那些希望针对特定协议单独设定不同代理的情况。 ```python import requests proxies = { 'http': 'http://10.10.1.10:3128', 'https': 'http://10.10.1.10:1080', } response = requests.get('http://example.org', proxies=proxies) print(response.status_code) ``` 上述代码展示了如何为不同的协议分别指定了代理地址[^1]。 #### 利用操作系统环境变量全局设置代理 对于希望通过更广泛的方式影响所有基于标准库发起的互联网访问的应用来说,修改操作系统的环境变量是一个不错的选择。这不仅限于单个脚本内的局部调整,而是作用于整个Python会话期间发出的所有请求。 ```python import os os.environ['http_proxy'] = "http://proxy.example.com:80" os.environ['https_proxy'] = "http://proxy.example.com:443" # Now any library that respects these environment variables will use the proxy. ``` 这种方式适用于想要让所有的HTTP(S)流量都经过同一个代理的情形下[^2]。 #### 配置 pip 安装包管理器使用代理 如果目标是在安装第三方库的时候也走代理,则可以在命令行中直接加入相应的参数完成此功能: ```bash pip install some-package --proxy http://username:password@proxy.server:port ``` 这里需要注意的是,如果代理需要认证的话,还需要提供用户名密码信息作为URL的一部分[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值