ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

关于爬虫ip:爬取快代理的免费代理ip

2020-08-07 21:32:10  阅读:274  来源: 互联网

标签:ip 取快 list 代理 tr ips print proxies


import requests
import parsel
import time,random

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}
def get_ips():
    proxies_list = []
    for page in range(1,5):
        print("正在爬取第{}页的数据".format(str(page)))
        url = "https://www.kuaidaili.com/free/inha/{}".format(str(page))
        response = requests.get(url,headers=headers)
        data = response.text

        html_data = parsel.Selector(data)

        tr_parse = html_data.xpath('//table[@class="table table-bordered table-striped"]/tbody/tr')

        for tr in tr_parse:
            tmp_dict = {}
            Type = tr.xpath('./td[4]/text()').extract_first()
            IP = tr.xpath('./td[1]/text()').extract_first()
            PORT = tr.xpath('./td[2]/text()').extract_first()
            tmp_dict[Type] = IP+":"+PORT
            print(tmp_dict)
            proxies_list.append(tmp_dict)
        time.sleep(random.randint(1,5))

    print(proxies_list)
    print("获取到的id的数量",len(proxies_list))
    return proxies_list

# 检查代理ip的可用性
def check_ip(proxies_list):
    can_use = []
    for pro in proxies_list:
        try:
            response = requests.get("https://www.baidu.com",headers=headers,proxies = pro,timeout = 0.1)
            if response.status_code==200:
                can_use.append(pro)
        except Exception as e:
            print(pro,e)
    return can_use

if __name__ == '__main__':
    proxies_list = get_ips()
    ips = check_ip(proxies_list)
    print("能用的ip",ips)
    print("能用的ip的数量",len(ips))

笔记整理于青灯教育公开课

标签:ip,取快,list,代理,tr,ips,print,proxies
来源: https://www.cnblogs.com/jiangxiaoyuan/p/13455328.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有