We are all in the gutter, but some of us are looking at the stars.
身在井隅,心向璀璨。
无论是爬虫还是渗透测试,都会遇到反爬反破解的问题,当IP访问请求过于频繁或者存在恶意请求时,会对该IP进行限制访问,通常情况下需要构建IP代理池。
IP采集
- 简单来说,从互联网中收集免费的代理IP,以某提供免费代理IP的网站为例:
爬取信息,数据筛选。
所需模块:
- requests
- beautifulsoup4
具体网站不同,爬取方式也不同。合理使用,请勿过度爬取,对服务器造成负担。
IP验证
通过requests的代理方式访问IP查询网站,如果得到的IP是代理IP而不是自己的真实IP,则说明该代理IP有效。
代码演示
完整示例代码如下(编写文章时代码测试无误,由于爬虫的不稳定性,不保证该代码长期有效):
import requests
import re, os
from bs4 import BeautifulSoup
#爬取代理IP的数据
def get_proxy():
headers={
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0'
}
#仅对http高匿代理的第一页数据进行爬取,100条数据
r=requests.get("https://www.xicidaili.com/nn/1",headers=headers)
soup=BeautifulSoup