这次我们使用python对selenium进行一个简单的二次封装~既然是二次封装,那我们就加上自己需要的公共方法~例如:log,异常捕捉,智能等待。先看一下最后使用简单封装后的小爬虫运行结果~
- 那么接下来咋们来一步一步实现~咋们先把原生的logging 模块封装一个乞丐版方法(非面向对象编程,看起来很简单),代码如下,你可以把logger 看成一个一个记录事件的人,而addHandler 就是告诉logger 需要用什么方式来记录,如果有两种方式记录,可以定义两种方式(例如代码里的变量file,console),并定义在什么情况下记录日志(setLevel),并以什么方式记录(setFormatter),这样理解就不难啦~另外’\033[95m’ 这些字符代表字体颜色~哈哈大家可以自己试试五颜六色的log ~
HEADER = '\033[95m' #颜色代码
OKBLUE = '\033[94m'
OKGREEN = '\033[92m'
WARNING = '\033[93m'
FAIL = '\033[91m'
ENDC = '\033[0m'
filePath = os.path.dirname(__file__)
fileNamePath = os.path.split(os.path.realpath(__file__))[0]
logPath = os.path.join(fileNamePath,'log.txt') #log文件路径
logger = logging.getLogger(__name__)
logger.handlers.clear() #确保handlers为空
logger.setLevel(level = logging.DEBUG) #设置log输出等级
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # 格式化输出
'''保存到文件'''
file = logging.FileHandler(logPath,"w")
file.setLevel(logging.INFO)
file.setFormatter(formatter)
'''输出到控制台'''
console = logging.StreamHandler()
console.setLevel(logging.INFO)
console.setFormatter(formatter)
logger.addHandler(file) #添加handler
logger.addHandler(console)
class Log():
@classmethod
def info(self,msg):
logger.info(msg)
@classmethod
def debug(self,msg):
logger.debug(msg)
@classmethod
def warning(self, msg):
logger.warning(msg)
@classmethod
def error(self,msg):
logger.error(WARNING+str(msg)+ENDC)
if __name__ == "__main__":
Log.info('Test')
Log.debug('Test')
Log.warning('Test')
Log.error('Test')
- 接下来我们来封装selenium与log,我们根据selenium的api,来设计一种可以可复用的智能等待与异常捕捉,想到复用性,那第一个想到的肯定是装饰器啦~可以省去多个方法中重复的部分,重复的部分有哪些呢? UI自动化最多,且重要的部分是元素定位啦~那么我们来写一个元素定位异常捕捉,智能等待,与Log结合的一个装饰器~先由定位方式(简单介绍三种)写出如下代码~
if by == "id": #判断操作方法是否为by id Element = WebDriverWait(self.driver, OVER_TIME, 1).until(EC.presence_of_element_located((By.ID, value)),message) elif by == "xpath": #判断操作方法是否为by xpath Element = WebDriverWait(self.driver, OVER_TIME, 1).until(EC.presence_of_element_located((By.XPATH, value)), message) elif by == "css": #判断操作方法是否为by css Element = WebDriverWait(self.driver, OVER_TIME, 1).until(EC.presence_of_element_located((By.CSS_SELECTOR, value)), message) else: raise NameError("keyword error!") #操作方法不在定义内,报错。
- 大家都知道官方称css定位效率那么是为什么呢?嘻嘻~咋们先观察一下selenium定位源码(例如id),不难看出定位方式最终返回的是find_element这个函数。
def find_element_by_id(self, id_): """Finds an element by id. :Args: - id\_ - The id of the element to be found. :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_id('foo') """ return self.find_element(by=By.ID, value=id_)
- 咋们再来看以下find_element这个函数 这个函数最终将不同种定位方式全部转换成了,By.CSS_SELECTOR ,由此可得 CSS定位效率最高~
def find_element(self, by=By.ID, value=None): """ Find an element given a By strategy and locator. Prefer the find_element_by_* methods when possible. :Usage: element = driver.find_element(By.ID, 'foo') :rtype: WebElement """ if self.w3c: if by == By.ID: by = By.CSS_SELECTOR value = '[id="%s"]' % value elif by == By.TAG_NAME: by = By.CSS_SELECTOR elif by == By.CLASS_NAME: by = By.CSS_SELECTOR value = ".%s" % value elif by == By.NAME: by = By.CSS_SELECTOR value = '[name="%s"]' % value return self.execute(Command.FIND_ELEMENT, { 'using': by, 'value': value})['value']
- 接着之前所讲我们来设计一个传入值以’=>’为分隔符,例如’xpath=>xxxx’,那么将会用xpath方式查找xxxx元素~代码如下(css为传入值):
by, value = css.split("=>")[0].strip(), css.split("=>")[1].strip() #以=>为分隔符提取,并去掉头尾空格/换行符。
- 再加上之前封装过的log模块得到代码如下:
if "=>" not in css: #判断传入值是否符合格式规范 raise NameError("format error!") by, value = css.split("=>")[0].strip(), css.split("=>")[1].strip() message = f'Element: {css} not found in {OVER_TIME} seconds.' if by == "id": Element = WebDriverWait(self.driver, OVER_TIME, 1).until(EC.presence_of_element_located((By.ID, value)),message) elif by == "xpath": Element = WebDriverWait(self.driver, OVER_TIME, 1).until(EC.presence_of_element_located((By.XPATH, value)), message) elif by == "css": Element = WebDriverWait(self.driver, OVER_TIME, 1).until(EC.presence_of_element_located((By.CSS_SELECTOR, value)), message) else: raise NameError("keyword error!") Log.info(f'--> RUN TIME: <{time.time() - s}> {func.__name__}==>{css}') #输出运行时间,运行方法名称,以及入参值。
- 是不是发现漏了点啥~嘻嘻 在log之前我们需要加入执行的方法~此时的log会记录执行时间,执行函数,与操作方法~于此同时我们将其改造成装饰器让它更方便的被调用~这个代码执行逻辑为,获取当前时间,判断传入值格式是否正确,并用隐性等待(隐性等待只针对某个元素,显性针对全局),若在规定时间内找到该元素,就会将其赋值给global 变量,Element,嘻嘻这样,被装饰的函数就可以变相的得到装饰函数返回值啦~
Element = None def catch_exception_log(func): def fun(self,css): global Element #声明全局变量Element s = time.time() try: if "=>" not in css: raise NameError("format error!") by, value = css.split("=>")[0].strip(), css.split("=>")[1].strip() message = f'Element: {css} not found in {OVER_TIME} seconds.' if by == "id": Element = WebDriverWait(self.driver, OVER_TIME, 1).until(EC.presence_of_element_located((By.ID, value)),message) elif by == "xpath": Element = WebDriverWait(self.driver, OVER_TIME, 1).until(EC.presence_of_element_located((By.XPATH, value)), message) elif by == "css": Element = WebDriverWait(self.driver, OVER_TIME, 1).until(EC.presence_of_element_located((By.CSS_SELECTOR, value)), message) else: raise NameError("keyword error!") result = func(css) #执行被装饰函数 Log.info(f'--> RUN TIME: <{time.time() - s}> {func.__name__}==>{css}') except Exception as e: Log.error(f'--> RUN TIME: <{time.time() - s}> error==>{e}') #异常捕捉 finally: return result #最终返回被装饰函数的结果 return fun
- 同理封装一个针对于js的(更简单的封装,如果js操作元素的话,理论上都要加元素等待判断此次忽略~)
def js_catch_exception_log(func): def fun(self,script): s = time.time() try: result = func(self,script) Log.info(f'--> RUN TIME: <{time.time() - s}> {func.__name__}==>{script}') except Exception as e: Log.error(f'--> RUN TIME: <{time.time() - s}> error==>{e}') finally: return result return fun
- 哈哈这样俩个装饰器就写好啦~那么我们来写base类吧~咋们使用__new__实现一个简单的单例模式如下(此次忽略多线程,若多线程下实现单例,需要加一把Lock自行了解吧~),咋们用刚才写的装饰器装饰上我们的方法~这样以后 封装只需要写一个简单的方法即可,装饰器会自带元素等待判断,log功能~是不是很简单~
class Driver(object): def __new__(cls, *args, **kwargs): #单例模式 if not hasattr(Driver, "_instance"): Driver._instance = object.__new__(cls) return Driver._instance def start(self, url=BASE_URL, driver_name="Chrome"): try: if driver_name == "Firefox": #判断所需驱动 self.driver = webdriver.Firefox(firefox_driver) elif driver_name == "Ie": self.driver = webdriver.Ie(ie_driver) else: self.driver = webdriver.Chrome(chrome_driver) self.driver.get(url) self.driver.maximize_window() #窗口最大化 Log.info(str(driver_name)+'==>Start Success!') except Exception as e: Log.error(e) @catch_exception_log def find_element_click(self,css=None): Element.click() #根据装饰器返回的Element直接操作,若之前有异常会被捕捉,并不会执行 @js_catch_exception_log def excute_js(self,script=None): return self.driver.execute_script(script)
- 那这种方法比一般的封装好在哪里呢?嘻嘻看图,去掉每个方法中的重复部分直接对元素操作即可~是不是很简单~
Selenium Python. Baiju Muthukadan. . Selenium WebDriver . WebDriver , . – , . WebDriver Java, .Net (C#), Python, Ruby, JavaScript, Firefox, InternetExplorer, Safari, Andriod, iOS ( Chrome Opera).
Not the answer you re looking for? Browse other questions tagged python firefox selenium webdriver access-denied or ask your own question .
Рекомендуем! Выбирайте проверенный клуб для азарmных игр! https://drive.google.com/open?id=10lYMS-wi2i798h5zy5GLEVYEe9oEaQKg
推荐! 选择一个成熟的俱乐部赌博! https://drive.google.com/open?id=10lYMS-wi2i798h5zy5GLEVYEe9oEaQKg
Hey very nice site!! Man .. Beautiful .. Amazing .. I’ll bookmark your site and take the feeds additionally? I am happy to find numerous useful information here within the publish, we’d like develop extra strategies in this regard, thanks for sharing. . . . . .|
cost of plaquenil
personal loans unsecured
buy dapoxetine online
buy albendazole
cialis for women
online loan
nationwide auto insurance
amoxicillin
https://personaliloans.com/
personal loans online
loan service
cialis 5 mg price
trusted payday loans online
atarax 10
oregon payday loans
filipina sex cam spy cam sex videos brother sister webcam sex.
https://loansonlinenb.com/
holiday loans
men sex cams free gay sex cams free nude sex cams.
car insurance quotes
buy celexa
cheapest cam sites adultfreewebcamsites.com ebony cam sites.
amoxicillin generic brand name
prozac 60 caps
buy fluoxetine online canada
where to buy prednisone online without a script
online loans no credit
loan payday
online loans for bad credit
online car insurance quotes
pool loan
online loan application
easy approval payday loans
hydroxychloroquine sulfate nz
lisinopril india price
hydroxychloroquine online
easy payday loans
cheap auto insurance in nj
https://personaliloans.com/
prednisone prescription
payday loans in utah
loan application online
colchicine 0.6 mg
buy celexa cheap
bad credit personal loans guaranteed approval
loan application
buy amoxil 500 mg online
liberty mutual car insurance
best online loans
https://loansonlinenb.com/
allopurinol can you buy in mexico
online loan
online payday loans florida
how much is over the counter diflucan
cost for prednisolone
personal loans
njm auto insurance
car insurance quotes comparison
loan service
https://loansonlinenb.com/
get money now
dapoxetine pills in india
buy albuterol
buy prozac
https://carinsurancequotes.us.org/
albuterol inhalers not prescription required
personal loans with bad credit
pay day loans online
ampicillin no prescription
augmentin 875 mg
first payday loan
loan site
order lisinopril 10 mg
cbd for sale hemp oil cannabis oil cbd capsules
guaranteed approval
payday cash loans online
brand name citalopram
amoxicillin 500 mg
how much is ventolin in canada
buy cytotec online
zovirax pill
cheap car insurance quotes online
buy celexa cheap
buy retin a
hydroxychloroquine online
money now
buy amoxicillin online
cipro bayer
cozaar without a prescription
loans online instant approval
fluoxetine online
kamagra 100mg oral jelly
buy cbd hemp cbd buy cbd oil cbd cream
amoxicillin 500 mg order online mexico
generic bactrim ds
buy kamagra
best cbd oil buy cbd oil http://cbdoilstore.us.com/ – cbd oil cbd medic cbd vape
cbd oil http://cbd-online.us.com/ – hemp oil cbd oil cbd oils
buy lasix
colchicine 0.6mg
augmentin 750 mg
buy hydroxychloroquine online
quicken loans careers
cbd pure cbd oil for dogs best cbd oil buy cbd oil
best personal loans
auto insurance companies 2019
retin a 08
buy cytotec
buy vardenafil
trazodone hcl 50 mg
diflucan pills for sale
albenza 200 mg cost
https://loansonlinenb.com/
cbd oil store cbd for sale cbd drops
buy paxil
buy augmentin online
advair cost
https://loansonlinenb.com/
buy tetracycline
cbd oil benefits cbd drops hemp cbd
cbd near me cbd hemp cbd medic
price of generic colchicine
online loans bad credit
paxil er
cbd cream cbd store medterra cbd buy hemp oil
can i order acyclovir online
best car insurance
online loans for bad credit
amoxicillin 500mg capsules
sildenafil 200mg online
indocin sr 75 mg
tadalafil 20
cbd tinctures http://cbd-hemp.us.com/ – cbd gummies walmart cbd for dogs cbd pills
seroquel price canada
price of advair diskus
amoxicillin online australia
buy accutane cheap online
prednisone 40 mg daily
buy diclofenac
tadalafil online
cbd tinctures http://cbd-online.us.com/ – hemp cbd cbd store hemp oil
toradol for fever
generic tadalafil coupon
cbd pure hemp oil for pain cbd oil store
prednisone 20
buy benicar online
what is an excellent credit score experian free credit score my annual credit report credit karma credit score free
generic cialis tadalafil
buy amoxicillin
anafranil 10
baclofen brand
generic advair diskus
where can i buy amoxicillin over the counter
lasix daily
female viagra pills in south africa
buy lasix
seroquel online pharmacy
free credit report online credit sesame business credit score free annual credit report government
prednisone 20 mg
robaxin in south africa
robaxin 1050 mg
prednisone 50 mg tablet cost
how to get female viagra pills
Thanks so much for the post.Really thank you! Keep writing.visit our site sales cialis
cymbalta 30 mg
order advair diskus
lasix 10 mg
propecia generic
generic for prozac
seroquel cost
buy ventolin
benicar uk
cialis online in us
cheapest sildenafil tablets
levitra 10 mg
credit report scores how to check credit score credit karma canada
buy generic seroquel
credit report agencies check my credit report credit karma home
amoxicillin where to get
credit check free experian credit how to check your credit score fico credit score
cheapest propecia prices
buy tadalafil 20
prednisone for sale online
levitra online best price
where to buy prednisone
excellent credit score credit score free credit score definition
ampicillin buy online uk
buy toradol tablets
sildenafil brand name in india
buy ventolin
check my credit score for free credit score free credit score karma my credit report
buy ampicillin
annualcreditreport com free annual credit report free average credit score mint credit score
levitra 20mg online
benicar hct
prednisone 20mg
Thanks so much for the post.Really thank you! Great.https://cheapandbestonline20.com/
buy tadalafil 20
best cialis canada
anafranil clomipramine
accutane prices
amoxicillin for sale online uk
buy generic propecia
dispute credit report equifax free credit report experian free credit score
anafranil generic
free yearly credit report http://creditscoresusd.com/ – what is my credit score credit reporting agencies free credit report equifax
where to buy prednisone
purchase levitra
sildenafil 100mg
tadalafil tablets online in india
cheapest propecia online
sildenafil 100mg tablets
30mg cymbalta
advair 500 50 mcg
buy levitra
seroquel generic
generic propecia nz
buy levitra
robaxin 750 tabs
advair diskus 500 50 mg
buy generic propecia uk
anafranil generic
free experian credit report creditkarma how to increase credit score
buy prozac 10mg
free credit karma http://creditreportwrt.com/ – credit reports boost credit score credit karma uk
propecia canada pharmacy online
seroquel 400
prednisone 60 mg daily
benicar 2018
diclofenac gel cost india
experian business credit report business credit score discover credit score credit reporting agency
tadalafil prices
can i buy ventolin online mexico
tadalafil 20
amoxicillin 875 mg
check my credit score credit karma freecreditreport check your credit score annual credit report completely free experian
accutane price
buy baclofen pill
buy toradol tablets
baclofen 10 mg
prednisone 1 mg cost
trazodone 50 mg
generic cialis tadalafil 20mg
credit karma credit score boost credit score check my credit score for free
sildenafil 40 mg over the counter
propecia drug in india
levitra india online
generic of cymbalta
benicar
my free credit report annual experian credit credit score credit score
advair inhaler
experian plc credit report dispute anual credit report
indomethacin indocin
buy accutane
buy prednisone mexico
buy propecia
amoxicillin 500
government free credit report free credit report experian free credit score check credit karma uk
synthroid 100mcg tab
generic benicar
ventolin 90 mcg
tadalafil 20
250 amoxicillin
credit scores credit scoring boost my credit score freeze credit report
prozac pill
credit score ratings free annual credit report com credit score needed for mortgage experian credit score
annual credit report official site http://checkcredithistorynx.com/ – karma credit score annual credit report get a free credit report
buy synthroid
levitra 10 mg
female pink viagra
buy lasix
cbd near me cbd drops hemp cbd oil
cbd gummies http://cannabisoilww.com/ – best cbd oil buy cbd oil cbd oil for pain cbd online
buy baclofen
benicar 20
amoxicillin over the counter mexico
pure cbd oil cbd hemp cbd near me
tadalafil 40 mg
accutane vitamin a
cymbalta 30 mg price
buy advair diskus
buy effexor xr
propecia buy online canada
143 metformin
cbd for dogs cbd products cbd oil store
buy prozac
where to buy erythromycin
cbd cream http://cbdstorexxl.com/ – cbd oil store cbd drops cbd
acyclovir 5 cream 10g
triamterene hctz
cbd oil store http://cbdstorexxl.com/ – cbd pure cbd gummies walmart cbd near me
cbd for dogs cbd oils cbd for dogs cbd vape
disulfiram generic
cbd vape http://cannabisoilww.com/ – hemp oil cbd cbd products
lisinopril 10 mg tablet
cbd tinctures cbd oils cbd gummies
neurontin 300 mg cost
flagyl 500 mg
cbd pure http://cbdonlineww.com/ – cdb oils pure cbd oil best cbd oil
buy robaxin
plavix 175 mg
cipro 500 mg tablet
cbd oil online http://buycbdoilww.com/ – buy cbd oil online medterra cbd hemp cbd
lisinopril in india
clonidine generic
plavix generic
pure cbd oil http://cbdgummiesww.com/ – cannabis oil medterra cbd best cbd oil
where can i buy cipro online
buy cbd oil cbd oil store cbd tinctures cbd oils
cbd store hemp oil for pain cbd for sale
buy cbd oil buy cbd cbd medic cbd oil at walmart
acyclovir cream
buy metfornin without prescription drugs online
cbd hemp cbd gummies hemp cbd cbd hemp
plavix generic
buy robaxin
buy yasmin
kamagra 100mg oral jelly
cdb oils http://buycbdoilww.com/ – hemp oil cbd gummies cbd pure
hemp oil for pain http://cbdoilwalmart24.com/ – hemp oil cbd oil benefits best cbd oil
cbd pure http://cbdonlineww.com/ – cbd near me cbd online cbd pure
neurontin capsules
pure cbd oil http://cannabisoilww.com/ – buy cbd oil cbd oil for dogs cbd drops
cbd vape http://cbdvapexxl.com/ – best cbd oil buy cbd oil cbd online
lisinopril 10 12.5 mg
buy gabapentin
arimidex buy nz
hemp oil cdb oils cdb oils hemp cbd oil
fluconazole online
furosemide 20 mg
acyclovir
medicine celebrex 200 mg
buy lisinopril
cbd oil http://cbdvapexxl.com/ – cbd oil benefits cbd hemp cbd gummies
prozac medication
antabuse 250 mg online
prozac buy
buy cbd http://cbdstorexxl.com/ – cbd pills pure cbd oil cbd medic
where can i buy antabuse
acyclovir
pure cbd oil cannabis oil cbd oil store cbd gummies
cbd pure http://hempcbdww.com/ – cbd oil cbd oil online cbd oil store
Thanks a lot for the article post.Much thanks again. Fantastic.https://edpillsnews20.com/
flagyl online
cbd oil for sale cbd online cbd oil buy hemp oil
cbd oils cbd oil for sale cbd medic cbd tinctures
buy plavix online
plavix
clonidine hcl 0.1
cbd oils pure cbd oil cbd capsules
hemp cbd cbd online hemp oil for pain
Precisely which is close to my heart… Many thanks! Exactly where are your contact details though?
buy baclofen
buy cbd oil online http://buycbdoilww.com/ – cbd oil cbd online cbd hemp
buy clonidine
glucophage tablet 250 mg
metformin 500
furosemide otc
robaxin 750 mg generic
antabuse online
hemp oil http://purecbdww.com/ – cbd gummies cbd pure cbd oil benefits
buy finasteride
buy sumycin online
order fluconazol
amoxicillin 875 mg tablet
flagyl prescription
erythromycin tablet
cbd oils http://cbdstorexxl.com/ – cbd oil online cbd cbd oil at walmart
metformin 500
lisinopril 12.5 mg price
arimidex cost uk
glucophage 1000 mg price
cbd oil at walmart hemp cbd oil cbd gummies walmart
cbd oil store cbd for dogs buy cbd oil
cbd store http://mycbdtinctures.com/ – cbd near me cbd gummies walmart cbd oil online
triamterene-hctz 37.5-25 mg tb
cbd oil benefits cbd oil cbd pure cbd products
generic proscar online
acyclovir
buy hemp oil buy cbd oil online hemp oil for pain
cbd products hemp oil for pain hemp oil for pain
cbd oils cbd oil for sale pure cbd oil
generic for prozac
glucophage online
cheap proscar online
buy zofran online
disulfiram
cipro 500 mg
buy cbd oil online http://bestcbdstoreww.com/ – buy hemp oil cbd oil store cbd oil for sale
online diflucan
ciprofloxacin hcl 500 mg
cbd oil for sale cbd cbd tinctures cbd for sale
zofran generic
cbd for sale cbd oil benefits cbd cream
cbd pure cbd for sale cbd oil cbd gummies
cbd oil cbd for dogs cbd pure cbd oil at walmart
Thank you for your blog post.Really thank you! Awesome.online will writing services
robaxin 500mg cost
celebrex 200 mg capsule
neurontin 400
prozac online without a prescription
lisinopril prices
cipro 500 mg tablet
slots games http://casinoslots2020.us.org/ – vegas casino slots casino slots real casino slots
hemp oil buy cbd cbd oil for pain cbd
robaxin 750 mg generic
rexall pharmacy amoxicillin 500mg
amoxicillin without prescription
buy clonidine
baclofen 10
online casino gambling http://onlinecasino777.us.org/ – casino play vegas casino slots casino play
hemp cbd hemp oil best cbd oil buy cbd oil
yasmin 0.03 mg 3mg
amoxicillin buy online
furosemide lasix
prozac pill
casino real money slots games online casino bonus online casinos
buy finasteride
glucophage 850 mg tablets
inderal 40 mg tablets
celebrex 1200 mg
yasmin pill price in india
cbd products cbd drops cbd oil benefits
best cbd oil buy cbd oil http://buycbdoilonline.us.com/ – cbd oil store cbd gummies walmart cbd oil
online gambling http://freecasinosmq.com/ – casino online play slots online gambling
buy inderal online
cbd near me http://cbdcream24.com/ – best cbd oil cbd oil store cbd pills
zovirax ophthalmic ointment
buy gabapentin
buy diflucan
triamterene coupon
over the counter lisinopril
antabuse price canada
buy plavix
prozac pills buy
neurontin 600
best online casino online casinos slots free
cbd gummies walmart cbd gummies hemp oil for pain cbd medic
diflucan one
flagyl online
where can i buy amoxil
no deposit casino http://freecasinosmq.com/ – cashman casino slots real casino slots casino games
buy furosemide
cbd pure cbd tinctures cbd pure
casino games casino game play online casino slot games
cbd hemp http://cbd-store.us.com/ – cbd for sale cbd near me cbd oil at walmart
metronidazole flagyl
acyclovir
neurontin generic
arimidex 1 mg capsules
cashman casino slots online gambling vegas casino slots best online casino
cbd oil benefits cbd oil store cbd capsules
hemp oil cannabis oil hemp cbd
celebrex rx
flagyl order online
cbd for dogs http://buycbdoilsm.com/ – buy hemp oil cbd for dogs cbd oil for pain
how to buy diflucan
cbd oil benefits http://cbdoilcho.com/ – cbd pure best cbd oil cbd hemp
cipro online canada
celebrex 100mg mexico
cbd gummies walmart cbd oil buy hemp oil
cbd oil at walmart http://cbdoilwalm.com/ – medterra cbd cdb oils cbd cream
buy glucophage
sumycin 250 mg
cbd oil for dogs buy cbd buy hemp oil
buy celebrex 200mg online
yasmin pill nz
best online casino slots for real money casino bonus codes online casino games
buy antabuse tablets uk
robaxin price uk
lisinopril 10mg
slots games http://freecasinosmq.com/ – online casino gambling casino games casino game
gabapentin medication
inderal order
effexor xr
casino online slots games free play casino
cbd gummies http://buycbdoilsm.com/ – buy cbd oil cbd pure buy cbd oil online
inderal medicine price
furosemide 50 mg
buy cbd oil cbd vape cbd medic
buy hemp oil cbd for dogs cbd oil
acyclovir medication price
diflucan buy
buy flagyl tablets
slots for real money online casino games casino real money
zofran generic
free slots casino online slots online gambling best online casino
cipro over the counter uk
diflucan 50mg
Every weekend i used to pay a visit this web page, as i want enjoyment,
as this this site conations in fact good funny stuff
too.
robaxin in usa
cipro medication
medterra cbd buy hemp oil cbd
effexor online
cbd gummies hemp oil cbd oil benefits cbd oil for sale
cost of proscar
where to buy erythromycin
buy lisinopril
robaxin brand name
yasmin online
buy diflucan online
cbd for dogs http://cbdcream24.com/ – buy cbd oil online hemp cbd oil cdb oils
cbd products http://cbdoilsls.com/ – buy cbd oil cbd pure cbd oil for pain
vegas casino slots online casino games free slots games
lisinopril pills for sale
generic glucophage
where can i get erythromycin
Знаете ли вы?
Во время немецкой оккупации Украины радио на украинском языке вещало из Саратова и Москвы.
Кустурица пропустил получение «Золотой ветви» в Каннах, так как любит друзей больше, чем церемонии награждения.
Двое капитанов первого кругосветного плавания были казнены, следующего высадили на необитаемый остров.
Потомок наполеоновского генерала стал Героем Советского Союза.
Китай реализует в Пакистане собственный План Маршалла.
http://www.arbeca.net/
Знаете ли вы?
Китай реализует в Пакистане собственный План Маршалла.
Иракский физрук получил мировую известность под псевдонимом «ангел смерти».
Бывший наркокурьер, став премьер-министром Юкона, принимал законы против наркомании и наркоторговли.
Бывший министр финансов удостоился высшей государственной награды за распространение знаний о психических расстройствах.
Рассказ английского писателя был экранизирован в СССР раньше, чем опубликован его английский оригинал.
arbeca
Знаете ли вы?
Крейсер «Берик» на рейде в Девонпорте
Предок вождя революции участвовал в управлении долгами Российской империи.
Роден назвал свои «Врата ада» напрямую, а его соотечественник только намекнул.
Двое капитанов первого кругосветного плавания были казнены, следующего высадили на необитаемый остров.
Новый вид пауков-скакунов был назван по имени писателя в честь юбилея его самой известной книги о гусенице.
arbeca
Знаете ли вы?
Самцы косатки, обитающие в Британской Колумбии, всю жизнь живут с мамой.
Сооснователь и глава Социал-демократической партии Великобритании стал бароном.
Биограф русского художника романтизировала историю его французской прародительницы вслед за Герценом.
Иракский физрук получил мировую известность под псевдонимом «ангел смерти».
Картина парада Победы, где руководство страны смещено на задний план, получила Сталинскую премию.
arbeca
Знаете ли вы?
Первый футбольный трофей после начала пандемии коронавируса был разыгран в Таджикистане.
Возможно, что американцы уже в 1872 году вмешались в канадские выборы.
В 1941 году в московскую «Писательскую роту» пришли добровольцами бывший вор и следователь ЧК.
Английский крейсер ценой четырёх попаданий защитил конвой от немецкого рейдера.
«С любимыми не расставайтесь…» автор написал после того, как чуть не погиб в железнодорожной катастрофе.
http://www.arbeca.net/
Знаете ли вы?
Преподаватель нескольких университетов, попавший в сталинские лагеря, и там умудрился обучать математике на куске мыла.
Американская энциклопедия включила в себя десятки статей о вымышленных людях, якобы связанных с Латинской Америкой.
Потомок наполеоновского генерала стал Героем Советского Союза.
Синим цветом своих футболок «Скуадра адзурра» обязана Савойе.
Каждая шестая яркая галактика во Вселенной очень сильно испускает газы.
arbeca
Знаете ли вы?
Старейшую в России организацию реставраторов велено было выселить и уплотнить.
Синим цветом своих футболок «Скуадра адзурра» обязана Савойе.
Убийца с руками-клешнями избежал тюрьмы, но позже сам был убит.
Американская энциклопедия включила в себя десятки статей о вымышленных людях, якобы связанных с Латинской Америкой.
Кустурица пропустил получение «Золотой ветви» в Каннах, так как любит друзей больше, чем церемонии награждения.
arbeca
hemp oil for pain cannabis oil cbd hemp cbd oils
cbd cream cbd pills cbd oils
Знаете ли вы?
Российских легкоалетов могут сурово наказать за действия чиновников от спорта.
Бразильский дипломат принимал непосредственное участие в создании государства Восточный Тимор.
Один из старейших музеев Амстердама находится в церкви на чердаке.
Рассказ Стивенсона о волшебной бутылке был опубликован почти одновременно на английском и самоанском языках.
Первая абсолютная чемпионка турнира Большого шлема похоронена в могиле для бедняков.
arbeca
Знаете ли вы?
Крейсер «Берик» на рейде в Девонпорте
Среди клиентов древнеримского афериста был император Марк Аврелий.
Синим цветом своих футболок «Скуадра адзурра» обязана Савойе.
Видеоигру с простейшей графикой называли и шедевром, и троллингом.
Копенгагенский собор пришлось выстроить заново после визита англичан в 1807 году.
http://www.arbeca.net/
Знаете ли вы?
Биограф русского художника романтизировала историю его французской прародительницы вслед за Герценом.
Согласно мифу, Марута Сар пыталась примирить Арарат и Арагац, но не смогла.
Перечень имён может быть самостоятельным поэтическим жанром.
Преподаватель нескольких университетов, попавший в сталинские лагеря, и там умудрился обучать математике на куске мыла.
Иногда для поддержки экономики деньги «разбрасывают с вертолёта».
arbeca.net
cbd online buy hemp oil cdb oils hemp oil for pain
Знаете ли вы?
Иракский физрук получил мировую известность под псевдонимом «ангел смерти».
Английский крейсер ценой четырёх попаданий защитил конвой от немецкого рейдера.
Индонезийской закуской начиняют пирожки, посыпают рис и кладут в лапшу и супы.
Среди клиентов древнеримского афериста был император Марк Аврелий.
Рассказ английского писателя был экранизирован в СССР раньше, чем опубликован его английский оригинал.
arbeca
doxycycline 100 mg order online
Знаете ли вы?
Рассказ английского писателя был экранизирован в СССР раньше, чем опубликован его английский оригинал.
Американская энциклопедия включила в себя десятки статей о вымышленных людях, якобы связанных с Латинской Америкой.
Крейсер «Берик» на рейде в Девонпорте
В Чехословакии и СССР был свой «поцелуй победы».
Владелец вернул похищенную картину Пикассо почтой, не найдя покупателей.
arbeca.net
cbd vape http://cbdoilcho.com/ – hemp cbd cbd pure cbd for sale
Знаете ли вы?
100-летний ветеран внёс уникальный вклад в борьбу со смертельной угрозой.
Первый в мире короткоствольный револьвер (англ.)русск. с откидным барабаном стал символом кинонуара.
Иногда для поддержки экономики деньги «разбрасывают с вертолёта».
После 50 черепно-мозговых травм регбист завершил карьеру, опасаясь получить синдром деменции.
Потомок наполеоновского генерала стал Героем Советского Союза.
http://arbeca.net
Знаете ли вы?
Каждая шестая яркая галактика во Вселенной очень сильно испускает газы.
Иракский физрук получил мировую известность под псевдонимом «ангел смерти».
Советский разведчик-нелегал создал в Европе разведгруппу, успешно проработавшую всю войну.
Канадский солдат в одиночку освободил от немцев нидерландский город.
Самцы косатки, обитающие в Британской Колумбии, всю жизнь живут с мамой.
arbeca.net
Знаете ли вы?
Видеоигру с простейшей графикой называли и шедевром, и троллингом.
Мама и четверо детей снимают фильмы о своей жизни во время войны.
Залётная птаха занесена в перечень птиц России спустя более полувека после открытия вида.
Иракский физрук получил мировую известность под псевдонимом «ангел смерти».
Врач на карантине спел созданную для фильма песню Высоцкого «Давно смолкли залпы орудий».
arbeca.net
Знаете ли вы?
Сооснователь и глава Социал-демократической партии Великобритании стал бароном.
Китай реализует в Пакистане собственный План Маршалла.
По выбору Утёсова дорога на Берлин шла то через Минск, то через Киев.
Английский крейсер ценой четырёх попаданий защитил конвой от немецкого рейдера.
Картина парада Победы, где руководство страны смещено на задний план, получила Сталинскую премию.
arbeca
Знаете ли вы?
Ливийский диктатор пытался спасти от казни премьер-министра Пакистана.
Плата за проезд в последний путь у древних была скорее символической.
Зелёный чай может быть розовым.
Член Зала хоккейной славы готов был играть где угодно, лишь бы не переходить в тренеры.
Первый футбольный трофей после начала пандемии коронавируса был разыгран в Таджикистане.
http://www.arbeca.net/
Знаете ли вы?
Двое капитанов первого кругосветного плавания были казнены, следующего высадили на необитаемый остров.
Убийца с руками-клешнями избежал тюрьмы, но позже сам был убит.
Не удержавшись от писательства, Амалия Кахана-Кармон создала одну из важнейших книг в истории Израиля.
Консервативные художественные критики обрушились на портрет девушки, называя её гермафродитом, дочерью Каина и проституткой.
«Голова крестьянина» хранилась в доме у немецкой актрисы.
arbeca
Знаете ли вы?
Предок вождя революции участвовал в управлении долгами Российской империи.
В 1941 году в московскую «Писательскую роту» пришли добровольцами бывший вор и следователь ЧК.
Художник-карикатурист известен пародией на мунковский «Крик».
Потомок наполеоновского генерала стал Героем Советского Союза.
Подруга и последовательница Льва Толстого уже в детстве ходила босиком и отвергала нарядную одежду.
arbeca
Знаете ли вы?
Бывший министр финансов удостоился высшей государственной награды за распространение знаний о психических расстройствах.
Каждая шестая яркая галактика во Вселенной очень сильно испускает газы.
Персонажу французской комедии о Фантомасе советские подростки подражали всерьёз.
Картина парада Победы, где руководство страны смещено на задний план, получила Сталинскую премию.
Плата за проезд в последний путь у древних была скорее символической.
arbeca
albuterol 5 mg
Hmm it appears like your website ate my first comment (it was extremely long) so I guess I’ll just sum it up what I submitted and say, I’m thoroughly enjoying your blog.
I as well am an aspiring blog blogger but I’m still new to everything.
Do you have any tips and hints for inexperienced blog writers?
I’d really appreciate it.
Знаете ли вы?
Первая председательница Верховного суда Татарии молчала по поводу своей службы в НКВД.
100-летний ветеран внёс уникальный вклад в борьбу со смертельной угрозой.
Подруга и последовательница Льва Толстого уже в детстве ходила босиком и отвергала нарядную одежду.
Планета — глазное яблоко может быть пригодна для жизни в одних районах и непригодна в других.
Американская энциклопедия включила в себя десятки статей о вымышленных людях, якобы связанных с Латинской Америкой.
http://arbeca.net/
Знаете ли вы?
Российских легкоалетов могут сурово наказать за действия чиновников от спорта.
Американский лейтенант из конвоя PQ-17 был спасён советским танкером и наладил его оборону от авианалётов.
Альбом «Битлз», признанный одним из величайших в истории музыки, ругали за искусственность и «перепродюсированность».
Подруга и последовательница Льва Толстого уже в детстве ходила босиком и отвергала нарядную одежду.
Зелёный чай может быть розовым.
http://www.arbeca.net/
Знаете ли вы?
Первая абсолютная чемпионка турнира Большого шлема похоронена в могиле для бедняков.
Копенгагенский собор пришлось выстроить заново после визита англичан в 1807 году.
В 1941 году в московскую «Писательскую роту» пришли добровольцами бывший вор и следователь ЧК.
Китайскую пустыню засадили лесами и открыли там фешенебельный курорт.
Свадьба английского рыцаря стала причиной войны между двумя могущественными родами.
http://www.arbeca.net/
Знаете ли вы?
Синим цветом своих футболок «Скуадра адзурра» обязана Савойе.
Убийца с руками-клешнями избежал тюрьмы, но позже сам был убит.
Команды тренера года АБА и НБА ни разу не стали в них финалистками.
Сын политика-пьяницы помог принять сухой закон в своей провинции.
Российских легкоалетов могут сурово наказать за действия чиновников от спорта.
arbeca
Знаете ли вы?
Роден назвал свои «Врата ада» напрямую, а его соотечественник только намекнул.
Акадийка много раз становилась первой.
Альбом «Битлз», признанный одним из величайших в истории музыки, ругали за искусственность и «перепродюсированность».
Биограф русского художника романтизировала историю его французской прародительницы вслед за Герценом.
Команды тренера года АБА и НБА ни разу не стали в них финалистками.
arbeca
Знаете ли вы?
Бывший наркокурьер, став премьер-министром Юкона, принимал законы против наркомании и наркоторговли.
Американский лейтенант из конвоя PQ-17 был спасён советским танкером и наладил его оборону от авианалётов.
Первый в мире короткоствольный револьвер (англ.)русск. с откидным барабаном стал символом кинонуара.
Сын политика-пьяницы помог принять сухой закон в своей провинции.
Герои украинского сериала о школьниках с трудом изъясняются по-украински.
arbeca
where to buy diflucan
cheap doxy
buy propecia online 5mg
colchicine 0.6 mg capsule
propecia
cbd oil online http://cbdoilcho.com/ – buy cbd oil online cbd oil online cbd pure
buy hydroxychloroquine
where to buy vardenafil
tretinoin 05
Знаете ли вы?
Будущего чемпиона Европы по боксу в детстве одновременно дразнили «хохлом» и «москалём».
Перечень имён может быть самостоятельным поэтическим жанром.
Подруга и последовательница Льва Толстого уже в детстве ходила босиком и отвергала нарядную одежду.
Бывший наркокурьер, став премьер-министром Юкона, принимал законы против наркомании и наркоторговли.
Преподаватель нескольких университетов, попавший в сталинские лагеря, и там умудрился обучать математике на куске мыла.
arbeca
cbd capsules cbd drops buy cbd oil online best cbd oil
Знаете ли вы?
Альбом «Битлз», признанный одним из величайших в истории музыки, ругали за искусственность и «перепродюсированность».
Первый в мире короткоствольный револьвер (англ.)русск. с откидным барабаном стал символом кинонуара.
Будущего чемпиона Европы по боксу в детстве одновременно дразнили «хохлом» и «москалём».
Бразильский дипломат принимал непосредственное участие в создании государства Восточный Тимор.
Клирик-саксонец стать папой римским не захотел, а патриархом Севера не смог.
arbeca
Знаете ли вы?
Бывший наркокурьер, став премьер-министром Юкона, принимал законы против наркомании и наркоторговли.
Персонажу французской комедии о Фантомасе советские подростки подражали всерьёз.
Видеоигру с простейшей графикой называли и шедевром, и троллингом.
Хотя ареал белизского геккона состоит из нескольких крохотных островов, IUCN не считает его раздробленным.
После 50 черепно-мозговых травм регбист завершил карьеру, опасаясь получить синдром деменции.
http://arbeca.net
Знаете ли вы?
Самцы косатки, обитающие в Британской Колумбии, всю жизнь живут с мамой.
Среди клиентов древнеримского афериста был император Марк Аврелий.
Американская энциклопедия включила в себя десятки статей о вымышленных людях, якобы связанных с Латинской Америкой.
Один из старейших музеев Амстердама находится в церкви на чердаке.
Во время немецкой оккупации Украины радио на украинском языке вещало из Саратова и Москвы.
arbeca.net
Знаете ли вы?
Английский крейсер ценой четырёх попаданий защитил конвой от немецкого рейдера.
Член Зала хоккейной славы готов был играть где угодно, лишь бы не переходить в тренеры.
Герои украинского сериала о школьниках с трудом изъясняются по-украински.
Рассказ Стивенсона о волшебной бутылке был опубликован почти одновременно на английском и самоанском языках.
Преподаватель нескольких университетов, попавший в сталинские лагеря, и там умудрился обучать математике на куске мыла.
http://arbeca.net/
100mg sildenafil coupon
cbd oil for sale http://cbdcreamwww.com/ – cbd drops cbd for sale cbd oil
Hi there Dear, are you truly visiting this web site on a regular basis, if so then you will without doubt take good knowledge.
brand name albuterol tab
cbd oil for pain best cbd oil cbd
cephalexin 500mg
buy tadalafil
cheap estrace cream
buy cbd oil online buy hemp oil cbd online
prednisone india
buy diflucan
colchicine 500 mg tablets
buy paxil online
accutane online
buy albuterol without a prescription
wellbutrin online prescription
where to buy lexapro
buy hydroxychloroquine
albuterol mexico
cephalexin 500mg
purchase vardenafil
cbd oil http://buycbdoilsm.com/ – cbd cream hemp oil cbd capsules
Hi, yeah this article is genuinely fastidious and I have learned lot of things from it on the topic of blogging.
thanks.
where to buy sildenafil
doxycycline over the counter
buy isotretinoin
tretinoin 0.05 cream india
sildenafil buy
azithromycin online
propecia buy online
cbd tinctures hemp oil cbd oil at walmart
tadalafil for sale uk
buy priligy
cbd oil for dogs hemp oil for pain cbd pure
propecia buy
cost of retin a in mexico
buy valtrex
buy accutane online uk
purchase azithromycin 500mg
250 mg cephalexin tablets
flomax medicine
generic propecia 5mg
accutane tablets
colchicine 0.6
cbd oil http://cbdoilcho.com/ – cbd store cbd oils cbd online
ciprofloxacin
tadalafil 20 mg price canada
diflucan 150
propecia buy online
buy priligy
over the counter retin a uk
azithromycin cheap online
buy diflucan
pure cbd oil http://cbdoilcho.com/ – cbd capsules medterra cbd cbd for dogs
cbd oil benefits cbd capsules cbd gummies walmart cbd oil
wellbutrin 25 mg
cbd pills cbd store buy cbd oil online
flomax 0.4
prednisone
vibramycin 100 mg
buy hemp oil cbd store buy cbd oil cbd
cbd gummies walmart http://cbdoilcho.com/ – cbd oil for dogs cbd gummies cbd oil
lexapro 20
buy cbd oil cbd oil online cbd oil for pain buy cbd oil
buy hemp oil hemp oil cbd cream cbd medic