def add_groups (campaign_name, restaurant_id, name): #добавляет группу объявлений в нужную кампанию data_json = json_parse.main() adwords_client = adwords.AdWordsClient.LoadFromStorage('googleads.yaml') #здесь хранятся название и айди кампании with open ('campaign_name_id.csv', 'r') as a: reader = csv.reader(a, delimiter='\n') for data in reader: name_id=data[0].split(',') #лист хранит найзвание и айди if (campaign_name==name_id[0]): #проверяет название кампании с названием кампании в файле CAMPAIGN_ID = '%s' % name_id[1] #если они равны то достает кампании айди print("CAMPAIGN_ID {}, campaign name {}".format(CAMPAIGN_ID, campaign_name)) checked_id=check.main(restaurant_id) #проверяет залит ли этот ресторан if (checked_id==True): #если True значит не залит и нужно добавлять группу объявлений print("Начинаю заливать") add_ad_groups.main(adwords_client, CAMPAIGN_ID, restaurant_id, name, campaign_name) #заливает группу объявлений
def add_text_keywords(): #добавляет объявления и ключевые слова группы adwords_client = adwords.AdWordsClient.LoadFromStorage('googleads.yaml') data_json=json_parse.main() for data in data_json: group_name="["+str(data["id"])+"]"+data["title"] #название группы в форме [id]Name_of_restaurant category=data["categories"][0]["title"] #категория name=data["title"] #название ресторан finalUrls=data["menu_url"] #ссылка id=data["id"] #айди with open ('ad_groups_name_id.csv', 'rt') as a: #смотрит по названию группы и достает его айди из файла reader = csv.reader(a, delimiter='\n') for data in reader: name_id=data[0].split(',') if (group_name==name_id[0]): #сравнивет название группы и название из файла AD_GROUP_ID=name_id[1] #если равны достает его айди add_expanded_text_ads.main(adwords_client, AD_GROUP_ID, category, name, finalUrls) #передает все данные на добавления оюъявления add_key.main(adwords_client, AD_GROUP_ID, id) #передает все данные на добавление ключевиков check.add(id) delete.main(id, name, AD_GROUP_ID) #удаляет из файла полностью новые залитые ресторана
#!/usr/bin/env python # -*- coding: utf-8 -*- """"Главный файл который нужно запускать. По городу определяет кампанию в которую надо добавить группу""" import sys sys.path.insert(0, '/home/user/Desktop/adwords_editing/adwords_add_new_restoran(Completed)/main.py') import json_parse import main import check #от API chocofood достает город сравнивает data_json=json_parse.main() for data in data_json: id=data["id"] city=data["city"] name=data["title"] print("Айдишка", id) print("Gorod", city) #checked_id=check.main(id) #проверяет залит ли этот ресторан #if (checked_id==True): #если True значит не залит и нужно добавлять группу объявлений #add_ad_groups.main(adwords_client, CAMPAIGN_ID, restaurant_id, name, campaign_name) #заливает группу объявлений # print("Заливка начинается", id) if(city=="Алматы"): #если это Алматы то передает что название кампании "Рестораны Алматы" campaign_name="Рестораны Алматы" main.add_groups(campaign_name, id, name) #вызывает на добавление группы и передает данные main.add_text_keywords() #вызывает на добавление объявления, ключей и передает данные print(name, city)
import logging import time from googleads import adwords import json import requests import re import get_campaigns import get_ad_groups import json_parse import ad_group_stop #auth info adwords_client = adwords.AdWordsClient.LoadFromStorage( '/Users/leo/Documents/Obuchenie/AdWordsPython/googleads.yaml') #get feed rest_feed = json_parse.main() #get all campaigns campaigns_feed = get_campaigns.main(adwords_client) #get list of dicts of ad groups in campaigns, dict(Ad group NAME:Ad group ID) ads_group_feed = {} for campaign in campaigns_feed: ads_group_feed.update(get_ad_groups.main(adwords_client, campaign)) for ad_group_name in ads_group_feed: for rest in rest_feed: rest_id = '[%s]' % rest['id'] if rest_id in ad_group_name: if rest['status'] == 'active': ad_group_stop.main(adwords_client, str(ads_group_feed[ad_group_name]), 'ENABLED')
def main(id): data_json = json_parse.main() #читает данные с API chocofood, all_keywords = [] #хранит все ключевые слова в листе c = [ "меню", "заказать", "заказ", "сайт", "чокофуд", "chocofood", "цены", "отзывы" ] #нужно для формулы # c=["меню".decode("utf-8"), "заказать".decode("utf-8"), "заказ".decode("utf-8"), "сайт".decode("utf-8"), "чокофуд".decode("utf-8"), # "chocofood".decode("utf-8"), "цены".decode("utf-8"), "отзывы".decode("utf-8")] #нужно для формулы a = [] #чтоб хранить название ресторана for data in data_json: #print(data["id"]) city = data["city"] #город if ( data["id"] == id ): #айди ресторана, определяет для какого ресторана генерить ключевики # #n=re.sub(" '|!|`|№|«|»|’|(|)", "", data["title"]) # #n = re.sub(r"(^| )[^ ]*[^A-Za-z ][^ ]*(?=$| )", "", data["title"]) # n = re.sub(r'[^A-Za-z]', '', data["title"]) # print("name", data['title']) # print("After Removing", n) #name1=data["title"].split(" ") #если ресторана название состоит из двух слов и добавлять перед каждым словом + whitelist = set( 'abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ абвгдеёжзийклмнопрстуфхцчшщъыьэюя АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ' ) kek = ''.join(filter(whitelist.__contains__, data)) #print("name", data) #print("After Removing", kek) n = re.sub(' +', ' ', kek) print("After removing musor from name", n) name1 = n.split(" ") s = " +" for d in name1: a.append(d) name = "+" + s.join(a) name2 = "+" + (translit(s.join(a), 'ru')) # с латиницы на кирилицу all_keywords.append(name) #все ключевики складываются в этот лист all_keywords.append(name2) if city == "Нур-Султан (Астана)": city = "НурСултан Астана" b = [city, "Доставка", "Доставка +%s" % city] #тоже для формулы for i in b: key2 = name + " " + "+" + str(i) key22 = name2 + " " + "+" + str(i) all_keywords.append(key2) all_keywords.append(key22) for k in c: key3 = name + " " + "+" + k key33 = name2 + " " + "+" + k all_keywords.append(key3) all_keywords.append(key33) #else: #print("NOT") print(all_keywords) return (all_keywords) #возвращает лист всех ключевиков
# -*- coding: utf-8 -*- import os import get_json_v3 import json_parse import download_process from multiprocessing import freeze_support if __name__ == '__main__': # 解决使用 pyinstaller 打包程序后,多进程错误 freeze_support() get_json_v3.main() json_parse.main() download_process.main() # 多进程 os.system("pause")