1. 程式人生 > >[Python] [爬蟲] 12.批量政府網站的招投標、中標資訊爬取和推送的自動化爬蟲——代理池重建

[Python] [爬蟲] 12.批量政府網站的招投標、中標資訊爬取和推送的自動化爬蟲——代理池重建

目錄

1.Intro

檔名:rebuild_proxy.py

模組名:代理池重建

引用庫:

pymongo random

自定義引用檔案:proxyPool、configManager

功能:清空代理池,重新爬取代理,提高代理可用性。

2.Source

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
# Author  : YSW
# Time    : 2018/10/8 8:35
# File    : rebuild_proxy.py
# Version : 1.0
# Describe: 代理池重建
# Update  :
'''

import pymongo
import proxyPool
import configManager
import random

HEADERS = {
    "User-Agent": random.choice(configManager.headers)
}

# 本地 mongodb 引數
username = "localhost"
password = 27017

# 連線 mongodb
client = pymongo.MongoClient(username, password)
# 建立資料庫
proxyDB = client['proxyIP_DB']
proxyIP = proxyDB["proxyIP"]

proxyP = proxyPool.CrawlProxyIP(HEADERS)

class DataBase_Rebuild(object):
    def delete_all(self):
        print(u"[*] 開始清理代理池")
        try:
            # 清除表內容,不能用drop方法,這樣會將整個表刪除
            proxyIP.remove({})
            print(u"[+] 清理完成")
        except:
            print(u"[-] 清理失敗")

    def proxy_crawl(self):
        proxyPool.CrawlProxyIP(HEADERS).crawl_ip2(HEADERS)

    def disposer(self):
        self.delete_all()
        self.proxy_crawl()

rebuild = DataBase_Rebuild()
rebuild.disposer()