选择特定的ip访问网站
有时候采集数据时,目标网站会有防采集的策略,最通常的方法是限制ip访问的频率。这时候通常的解决方案是,使用代理ip。也有的是通过,服务器重新拨号,切换ip的方法来解决。这里介绍一下重新拨号,切换ip的方法。
选择重新拨号,通常需要服务器端有两个网卡。一个网卡连接你的终端,另一个网卡拨号,切换ip。但是在默认的情况下,访问网站都是默认的你用来连接终端的ip来访问。所以,每次访问网站的时候都需要指明又哪个ip发起访问。scarpy的做法是绑定网卡,这种是最好的解决方法。但是也可以不用绑定网卡,只需要每次访问的时候,在header请求头中加入自己的ip地址就够了。
命令行获取ip的方法:
ifconfig | grep -Eo ‘inet (addr:)?([0-9].){3}[0-9]‘ | grep -Eo ‘([0-9].){3}[0-9]‘ | grep -v ‘127.0.0.1’
记得要带上拨号程序的端口号
python3获取网卡的ip:
def get_ip_address(ifname):
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(
s.fileno(),
0x8915, # SIOCGIFADDR
struct.pack('256s', bytes(ifname[:15], 'utf-8'))
)[20:24])
print(get_ip_address(‘etc0’))
本作品采用《CC 协议》,转载必须注明作者和本文链接