专栏首页明天依旧可好的专栏实战项目一:爬取西刺代理(获取代理IP)

实战项目一:爬取西刺代理(获取代理IP)

爬虫的学习就是与反扒措施、反扒系统做斗争的一个过程,而使用代理IP是我们重要的防反扒的重要措施,代理IP的来源有两种一是你花钱去购买商家会给你提供一个接口你直接调用就可以了,二是自己在网上爬取高效IP。在这篇博客中我重点给大家讲一下如何从网上获取高效IP,我们下面的IP来源于西刺代理,这是我很久之前写的一篇博客,今天来进行“翻新”一番希望可以帮助到大家。

安装必要的第三方库

BeautifulSouprequestsBeautifulSoup负责解析HTML网页源码,requests负责发送请求来获取网页源码,BeautifulSouprequests均属于Python爬虫的基础库,可以通过pip安装。打开命令行输入命令pip install BeautifulSoup4pip install requests进行安装:

过后在输入命令pip list在pip安装包列表中检查BeautifulSouprequests库是否安装成功

分析网页结构

待续。。。。

完整代码

#IP地址取自国内髙匿代理IP网站:http://www.xicidaili.com/nn/  
from bs4 import BeautifulSoup
import requests,random

def get_ipInfors(url, headers):
	'''
	爬取IP数据,单个IP信息以json格式存储,所有json格式的IP数据信息放入列表中
	return:ip_infor
	'''
	web_data = requests.get(url, headers=headers)
	soup = BeautifulSoup(web_data.text, 'lxml')
	nodes = soup.find_all('tr')

	for node in nodes[1:]:
		ip_ = node.find_all('td')
		ip_address = ip_[1].text
		ip_port = ip_[2].text
		ip_type = ip_[5].text
		ip_time = ip_[8].text

	ip_infors = {
		"ip_address" : ip_address,
		"ip_port" : ip_port,
		"ip_type" : ip_type,
		"ip_time" : ip_time
	}
	return ip_infors

def write_ipInfors(ip_infors):
	'''
	将IP数据写入文件中
	'''
	for ip_infor in ip_infors:
		f=open('IP.txt','a+',encoding='utf-8')
		f.write(ip_infors)
		f.write('\n')
		f.close()

if __name__ == '__main__':
	for i in range(1,10):
		url = 'https://www.xicidaili.com/nn/{}'.format(i)
		headers = {
			'Host': 'www.xicidaili.com',
			'Referer': 'https://www.xicidaili.com/',
			'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36'
		}
		ip_infors = get_ipInfors(url, headers=headers)
		proxies = write_ipInfors(ip_infors)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 爬虫代理

    ip来源:http://www.xicidaili.com/wt/ 通过遍历西刺代理中的四个页面获取ip,然后对ip有效性进行检验,将有效的ip写入文件。这...

    明天依旧可好
  • 爬虫中的代理问题

    最近身边很多人都遇到爬虫中的代理问题,写下这篇博客来记录自己所学,希望可以帮助到你们。

    明天依旧可好
  • Python--代理IP

            当你需要在同一个网站爬取大量信息的时候,通常你会遇到各种各种各样的阻挠,其中一种就是IP被封,这时代理IP就成了我们不二的选择,我们下面的IP来...

    明天依旧可好
  • 关于伪造ip的可行性

    今晚,用curl进一个网站发现ip被限制访问了,然后我又开始了百度伪造请求ip的方法

    仙士可
  • python-redistest

    机器学习和大数据挖掘
  • PHP丨实现禁止国外IP访问WP博客

    你只需将以上代码加入到主题中的function.php即可。刷新页面试试效果, 如果主题中出现那么恭喜你,封禁成功了!! 其中,wp_redirect( ‘ht...

    V站CEO-西顾
  • django 获取访问者外网ip地址

    Coxhuang
  • python之ip校验简单总结

    Note: 不能校验ip的长度,可以校验每个IP中每段的有效性,和socket结果类似

    追马
  • python 爬虫之搭建代理ip池–测试代理ip可用性

    kirin
  • django request 获取请求的 IP 地址

    KEVINGUO_CN

扫码关注云+社区

领取腾讯云代金券