python中根据URL获得数据库的名称及IP

URL样例:

 # url 示例1 jdbc:oracle:thin:@172.16.2.32/orclis
  # url 示例2 jdbc:oracle:thin:@172.16.2.31:1521:orcl 

思路: 

(1) 分开来看,分别设定函数获得数据库的名称和IP

(2) 借助python中的find函数实现切片

# 获得数据库的名称
def get_database(url):
    # url 示例1 jdbc:oracle:thin:@172.16.2.32/orclis
    # url 示例2 jdbc:oracle:thin:@172.16.2.31:1521:orcl
    url_len = len(url)
    database_index = url.rfind('/')
    if database_index > 0:
        return url[database_index - url_len + 1:]
    else:
        return url[url.rfind(':') - url_len + 1:]

# 获得数据库的IP
def get_host(url):
    split_url = url[url.find("@") + 1:]
    colon_index = split_url.find(":")
    if colon_index > 0:
        return split_url[0:colon_index]
    else:
        return split_url[0:split_url.find("/")]

 

Python中,Scrapy是一个强大的网络爬虫框架,而Redis是一个内存数据存储系统,常用于缓存和分布式系统中。要利用Scrapy和Redis构建IP代理池,你可以按照以下步骤操作: 1. **安装依赖**: 首先确保已安装`Scrapy`、`Redis`及其Python客户端库`redis`。可以使用pip安装: ``` pip install scrapy redis ``` 2. **创建Scrapy项目**: 初始化一个新的Scrapy项目: ``` scrapy startproject proxy_scraper cd proxy_scraper ``` 3. **配置中间件**: 在`proxy_scraper/settings.py`中,启用`DownloaderMiddleware`以使用Redis作为代理池: ```python DOWNLOADER_MIDDLEWARES = { 'scrapy_redis.middlewares.ScrrapyRedisMiddleware': 700, # 其他中间件... } REDIS_URL = 'redis://localhost:6379/0' ``` 这里假设Redis运行在本地的6379端口。 4. **设置代理管理类**: 创建一个中间件类,比如`ProxyManagerMiddleware.py`,负责从Redis获取和保存代理IP: ```python from scrapy_redis.spiders import RedisSpider from scrapy.http import Request class ProxyManagerMiddleware(RedisSpider): def get_proxy(self): return self.redis.get('proxy_key') def process_request(self, request, spider): proxy = self.get_proxy() if proxy is not None: request.meta['proxy'] = f'http://{proxy}' ``` 5. **使用代理管理中间件**: 在需要代理的Scrapy爬虫中,例如`your_spider.py`,继承自`ProxyManagerMiddleware`并覆盖相应方法: ```python from .middlewares import ProxyManagerMiddleware class YourSpider(ProxyManagerMiddleware): name = "your_spider" # ...其他属性... ``` 6. **启动爬虫和管理Redis**: - 开启Redis服务(如果未开启): ``` redis-server ``` - 将代理IP放入Redis,例如通过脚本批量添加: ``` $ curl http://example.com/proxy-list | xargs -I{} redis-cli set proxy_key {} ``` - 启动Scrapy爬虫,并连接到Redis: ``` scrapy crawl your_spider ``` 7. **监控和更新代理**: 确保Redis中的代理列表是实时更新的,可以根据需要定期从代理提供者那里获取新的IP并更新到Redis。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值