当同一ip短时间内多次链接同一网站,很可能导致ip被封,所以需要利用代理ip防止封禁。
代理ip可以通过百度很容易的获取 比如 西刺代理
但是,很明显我们用爬虫的人,不是会一个个自己复制粘贴的人,所以自然想到用爬虫解决问题。
-本文不区分url和ip,为简化 都叫成ip
-文中有个特别注意一定要看
-本文全部代码见于我的Git
主要思路
1.从代理网站爬取IP地址及端口号并存储
2.验证ip能否使用
3.格式化ip地址
4.在requests中使用代理ip爬网站
具体实现
1.爬取代理IP
这一步很简单就直接上代码了
url = 'http://www.xicidaili.com/wt'
def get_ip_list(url, headers):
""" 从代理网站上获取代理"""
ip_list = []
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.text, 'lxml')
ul_list = soup.find_all('tr', limit=20)
print(len(ul_list))
for i in range(2, len(ul_list)):
line = ul_list[i].find_all('td')
ip = line[1].text
port = line[2].text
address = ip +