帮助中心 / 常见问题 / HTTP代理的使用方法都有哪些?网络爬虫如何使用?

HTTP代理的使用方法都有哪些?网络爬虫如何使用?

最近更新时间:2023-02-15 18:42:32

如今代理IP已经融入了我们的日常生活当中,像爬虫爬取、网站检测、广告测试等等业务的开展都离不开代理IP。目前常见的代理IP主要为三种,分别是HTTP代理、HTTPS代理和SOCKS代理,三者当中使用较多的是HTTP代理这一类型。


HTTP代理都有哪些使用场景?(http 代理


HTTP代理是一种常见的网络应用程序,它通过中间人的方式将客户端和服务器之间的HTTP请求和响应传递。以下是HTTP代理的一些常见使用场景:

1、访问控制:HTTP代理可以用于限制用户访问某些网站或内容。例如,学校或公司可以通过代理服务器控制员工或学生可以访问的网站。

2、缓存:HTTP代理可以缓存请求和响应以提高性能。当代理服务器收到请求时,它可以先检查缓存,如果缓存中存在请求的响应,那么就可以立即返回响应,而无需向服务器发起请求。

3、地理位置伪装:HTTP代理可以用于伪装客户端的地理位置。当代理服务器收到请求时,它可以更改请求的来源IP地址,以使服务器认为请求来自另一个地理位置。

可使用的场景还是非常之多的。



那么购买后的IP代理如何使用呢?都有哪些方法?(爬虫 代理


1:网络爬虫使用

动态IP代理相比使用人群最多的就是爬虫用户了,因为爬虫用户需要不断的更换IP地址来避免ip地址被封,下面我们来看一下,如何使用爬虫程序来链接代理IP:

代码如下:

import requests

from bs4 import BeautifulSoup

url = 'https://www.smartproxy.cn//nn/' # smart代理IP地址

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'

}

# 获取网页源码

html = requests.get(url, headers=headers).text

# 使用BeautifulSoup解析网页源码

soup = BeautifulSoup(html, 'lxml')

# 找到所有的IP代理

ips = soup.find_all('tr')

# 循环获取每个IP代理的详细信息

for i in range(1, len(ips)):

ip_info = ips[i]

tds = ip_info.find_all('td')

ip = tds[1].text

port = tds[2].text

address = tds[3].text.replace('\n', '').replace(' ', '')

proxy_type = tds[5].text.replace('\n', '').replace(' ', '')

 # 打印IP代理的详细信息

print(f'IP:{ip} 端口:{port} 地址:{address} 代理类型:{proxy_type}')

 

1.2如何利用爬虫程序自动更换IP代理地址?(轮换代理爬虫


由于不同网站可能需要使用不同的爬虫工具,这里提供一个使用Python中requests库和代理池(proxy pool)的示例程序,你可以根据自己的需求进行修改。

import requests

from urllib3.exceptions import MaxRetryError, NewConnectionError

from requests.adapters import HTTPAdapter

from requests.packages.urllib3.util.retry import Retry

import random

# 自定义requests请求函数,使用代理池和重试机制

def requests_retry_session(retries=3, backoff_factor=0.3, status_forcelist=(500, 502, 504), proxy=None):

    session = requests.Session()

    retry = Retry(

        total=retries,

        read=retries,

        connect=retries,

        backoff_factor=backoff_factor,

        status_forcelist=status_forcelist,

    )

 

    adapter = HTTPAdapter(max_retries=retry)

    session.mount('http://', adapter)

    session.mount('https://', adapter)

    

    if proxy:

        session.proxies = {

            'http': proxy,

            'https': proxy

        }

 

    return session

# 定义代理池列表

proxies_list = [

    'http://proxy1:port',

    'http://proxy2:port',

    'http://proxy3:port',

    # 可以添加更多的代理地址

]

# 随机选择一个代理地址

proxy = random.choice(proxies_list)

 

# 使用requests_retry_session函数发送请求

try:

    response = requests_retry_session(proxy=proxy).get(url)

    # 在这里处理响应内容

except (MaxRetryError, NewConnectionError) as e:

    print(f"请求出错:{str(e)}")

在这个示例程序中,使用了自定义的requests_retry_session函数,该函数实现了重试机制,并通过session.proxies参数指定了使用的代理地址。

然后,在每次请求之前,使用random.choice函数从代理池列表中随机选择一个代理地址。

如果请求失败,则会抛出MaxRetryError或NewConnectionError异常,可以根据需要进行异常处理。


2. 直接通过电脑系统直接使用


电脑系统直接设置IP代理使用


要通过电脑系统设置IP代理使用,你可以按照以下步骤进行操作:

1、打开控制面板:点击“开始”按钮,在搜索框中输入“控制面板”,然后按下“回车”键。

2、找到“网络和共享中心”:在控制面板中,找到“网络和共享中心”选项,然后点击它。

3、找到“更改适配器设置”:在“网络和共享中心”中,点击左侧面板中的“更改适配器设置”选项。

4、找到你要设置代理的网络适配器:找到你要设置代理的网络适配器,右键点击它,然后选择“属性”。

5、找到“Internet 协议版本 4 (TCP/IPv4)”:在适配器属性窗口中,找到“Internet 协议版本 4 (TCP/IPv4)”选项,然后点击“属性”。

6、配置代理服务器:在“Internet 协议版本 4 (TCP/IPv4)属性”窗口中,选择“使用下面的代理服务器地址”,然后输入代理服务器地址和端口号。

7、点击“确定”并保存更改:完成上述设置后,点击“确定”按钮保存更改即可。

请注意,这是一个基本的步骤指南,具体步骤可能因不同的操作系统版本或网络配置而略有不同。

 

文档内容是否对您有帮助?

有帮助
没帮助

如果遇到产品相关问题,您可咨询 在线客服 寻求帮助

猜你想看