由于每种更换IP的方式实现代码不同,所以我将分别给出每种方式的实现代码。
1.使用代理IP
以下是使用requests模块和代理IP更换IP的示例代码:
请将下述代码中的代理IP替换为可用的代理IP地址,然后运行即可。
import requests
# 代理IP列表
proxies = {
'http': 'http://ip:port',
'https': 'http://ip:port'
}
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 爬虫程序
def spider():
url = 'http://example.com'
response = requests.get(url=url, headers=headers, proxies=proxies)
print(response.text)
if __name__ == '__main__':
spider()
2.使用Tor网络
以下是使用requests模块和Tor网络更换IP的示例代码:
请注意,使用Tor网络需要先安装Tor软件,并在本机启动Tor服务,端口号为9050。另外,上述代码中的请求头部分可以根据实际情况进行修改。
import requests
import socket
import socks
# 设置Tor代理
socks.set_default_proxy(socks.SOCKS5, "localhost", 9050)
socket.socket = socks.socksocket
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 爬虫程序
def spider():
url = 'http://example.com'
response = requests.get(url=url, headers=headers)
print(response.text)
if __name__ == '__main__':
spider()
3.使用VPN
以下是使用requests模块和VPN更换IP的示例代码:
请将下述代码中的VPN服务器地址、用户名和密码替换为实际的VPN信息,然后运行即可。
import requests
# VPN服务器地址
vpn_server = 'http://your.vpn.server'
# VPN用户名和密码
vpn_user = 'your_vpn_username'
vpn_password = 'your_vpn_password'
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 爬虫程序
def spider():
url = 'http://example.com'
# 连接VPN
requests.get(vpn_server, auth=(vpn_user, vpn_password))
# 发送HTTP请求
response = requests.get(url=url, headers=headers)
print(response.text)
if __name__ == '__main__':
spider()
4.使用IP池
以下是使用requests模块和IP池更换IP的示例代码:
请将上述代码中的IP地址池替换为实际可用的IP地址,然后运行即可。
import random
import requests
# IP地址池
ip_pool = [
'http://ip1:port',
'http://ip2:port',
'http://ip3:port'
]
# 请求头
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
# 爬虫程序
def spider():
url = 'http://example.com'
# 随机选择一个IP地址
ip = random.choice(ip_pool)
proxies = {
'http': ip,
'https': ip
}
# 发送HTTP请求
response = requests.get(url=url, headers=headers, proxies=proxies)
print(response.text)
if __name__ == '__main__':
spider()