python - 建立代理池

本文介绍了一个Python程序,用于从免费代理网站抓取代理IP,并提供了程序结构、源码及使用方法。程序包含从不同网站爬取IP的接口,但未实现IP有效性检测,建议定期运行更新代理池,并考虑将大量数据存储到数据库。
摘要由CSDN通过智能技术生成

该篇文章搬运自个人博客园:darkchii - 博客园

主题

程序简介
  • 这是一个通过免费代理网站爬取代理ip的python程序

程序结构

结构列表
  • freeProxy
    • __init__.py
    • proxypool.py
    • proxyweb.py
结构图

img

文件介绍
  • __init__.py

    • 该文件中什么也没有。
  • proxypool.py

    1. 该文件中则是后面给出的源码。
    2. 简介:

      • 其中ProxyIpPool类中有get_kuaidaili_proxy_ipget_data5u_proxy_ip两个方法提供接口可以从两家不同的代理网站中爬取代理ip。

      • 两个方法的接口:

        1. get_kuaidaili_proxy_ip方法返回的是字典:{'ip':ip,'port':port,'type':type,'position':position}
        2. get_data5u_proxy_ip方法返回的是字典:
          {'ip':iplist,'port':portlist,'type':typelist,'nation':nationlist}这意味着可以调用这两个方法根据自己喜爱的方式编写接口来连接到两个方法。
      • 包中还有两个建立代理池的方法:
        create_kuaidaili_proxy_ip_poolcreate_data5u_proxy_ip_pool根据两个网站的不同可以同步代理池。

      • 具体细节还请自行阅读代码。

  • proxyweb.py

    • 该文件中是代理网站的链接。

源码

from bs4 import BeautifulSoup
from freeProxy import proxyweb
from requests import Session
from time import sleep
import random
import re, os


class ProxyIpPool(object):
    r = Session()

    def __init__(self,page=None,url=proxyweb.kuaidaili):
        object.__init__(self)
        self.page = page
        self.url = url

    def get_kuaidaili_proxy_ip(self):
        tablelist = ['IP', 'PORT', '类型', '位置']

        ip = []
        port = []
        type = []
        position = []

        headers = {
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Connection':'keep-alive',
            'Host': 'www.kuaidaili.com',
            'Upgrade-Insecure-Requests': '1',
            
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值