sajjad barmaki
5 سال پیش توسط sajjad barmaki مطرح شد
2 پاسخ

کم اوردن ram در برنامه پایتون

سلام دوستان گرامی ما برای پروژه تبلیغاتی خودمون لیست 299 میلیون وب سایت رو خریداری کردیم قصد داریم سایت های که با وردپرس ساخته شدن رو جدا کنیم یه برنامه براش با پایتون نوشتیم چون احساس کردیم بهترین گزینه هست اما وقتی شروع میکنه اسکن رم سیستم رو به شدت اشغال میکنه و بعد از چند دقیقه از برنامه خارج میشه حتی با سرور اختصاصی رم 32 گیگ هم تست کردیم متاسفانه جواب نداد دوستانی که توی این مورد تجربه دارن ممنون میشم راهنمایی کنن سپاس

#!/usr/bin/python
# coding=utf-8

import requests
import re
import sys
import codecs
from multiprocessing import Pool
from time import time as timer
from BeautifulSoup import BeautifulSoup

try:
    with codecs.open(sys.argv[1], mode='r', encoding='ascii', errors='ignore') as f:
        ooo = f.read().splitlines()
except IOError:
    pass
ooo = list((ooo))

def get_url(url):
    try:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A'}
        wcheck = requests.get(
            'http://' + url + '/wp-content/plugins/akismet/_inc/akismet.js', headers=headers,  timeout=5)
        if wcheck.status_code == 200 and "$('.akismet-status').each(function ()" in wcheck.content:
            print(url + " ===> [+] Success ! ")
            dom = url + ''
            open('wp_' + sys.argv[1], 'a').write(dom+'\n')
        else:
            print(url + " ===> [-] Not vuln !")

    except:
        pass

def goo():
    try:
        start = timer()
        pp = Pool(45)
        pr = pp.map(get_url, ooo)
        print('Time: ' + str(timer() - start) + ' seconds')
    except:
        pass

if __name__ == '__main__':
    goo()

ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
1

سلام این موضوع مشخصه دلیلش چیه
دلیلش اینکه شما تمام اطلاعات رو دارید اول لود میکنید خوب پس مشخصا ۲۲۹ میلیون نمیتونه داخل ram قرار بگیره.
شما باید از حالت Lazy استفاده کنید


علیرضا معمارزاده
تخصص : junior level developer
@alireza.mzh 5 سال پیش مطرح شد
1

@sajjad1372
سلام خدمت شما
آقای موسوی درست میگن میتونید از حالت lazy استفاده کنید اما به اینکه دقت کنید که این کار روی سئو سایت شما تاثیر منفی میزاره
اگر بخواین چندین درخواست به سمت سرور بفرستید ممکنه به سئو لطمه وارد کنه و این اصلاً برای سایت خوب نیست!


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام