<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ![](http://imgs.bizha.top//30de1a416e2385e2d29b28ed7076a661) 上篇是用[mlab](https://mlab.com/)提供的免費`MongoDB`數據庫與Python配合,這篇是進階使用。建立維護代理池。 爬蟲思路: ### 一、獲取代理,驗證后導入數據庫(獲取) - 1. 使用SSR代理Python,獲取 socks-proxy.net 的html,解析。 使用`ProxiesCol.insert_one()`進行**添加**操作 ``` LocalProxy = {'https': 'https://127.0.0.1:1080'} Resp = requests.get(ProxyUrl,proxies = LocalProxy) Soup = BeautifulSoup(Resp.text, 'lxml') IpTable = Soup.select('#proxylisttable > tbody > tr') IpList = [re.findall('<td>(.*?)</td>',str(IpRow)) for IpRow in IpTable] ProxiesList = [{'https':'%s://%s:%s'%(Ip[3],Ip[0],Ip[1])} for Ip in IpList] ``` - 2. 驗證代理 我用的是Bilibili api驗證代理,并添加地區到數據庫。 `https://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr` ![](http://imgs.bizha.top//be13d334575824f989008bc50a524071) `SocksProxies.py` ``` IpJson = json.loads(Response.text) country = IpJson['data']['country'] province = IpJson['data']['province'] city = IpJson['data']['city'] Proxies['Location'] = country + province + city ProxiesCol.insert_one(Proxies) ``` 導入到`MongoDB`的數據格式為: ```json { "_id": { "$oid": "5ea930b5b1418a139229b209" }, "https": "Socks4://209.13.96.172:39921", "Location": "阿根廷阿根廷", "AddTime": "2018年04月29日 15時45分57秒", "UpdateDate": "2018年04月29日 15時45分57秒" } ``` ### 二、從數據庫獲取代理并驗證是否失效(維護) - 1. 刪除重復代理 ``` myclient = pymongo.MongoClient('mongodb://fuwenyue:pass4Top@ds061076.mlab.com:61076/socksproxies',retryWrites='false') mydb = myclient['socksproxies'] ProxiesCol = mydb['unchecked'] ProxiesList = ProxiesCol.find({},{ "_id": 0, "https": 1}).sort('update',-1) ProxiesList = [Proxies for Proxies in ProxiesList] ``` - 2. 定期校驗代理。 使用 `ProxiesCol.delete_one()`、`ProxiesCol.update_one()`進行刪除與更新操作,定期檢查可維護代理池。 ### 三、`MongoDB`的查詢。 `ProxiesCol.find({},{ "_id": 0, "https": 1}).sort('update',-1)` 完整代碼:https://github.com/yoval/GetSocksProxies
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看