A New York Times és a Guardian API-k használata

Ahogy az előző posztokban említettem sokan reménykednek abban hogy a neten összegyűlt hatalmas adat mennyiség betekintést nyújthat abba hogyan is működik a nyelv. Habár sokat segíthet ha rengeteg adattal rendelkezünk, ennek vannak határai – ahogy erre pl Kilgariff is rámutatott. Nem is beszélve a technikai és jogi korlátokról.

A nyílt kormányzás eszméje

Gondoljuk egy kicsit tovább a dolgokat. Nem csak roppan mennyiségű nyelvi adat generálódik ám nap mint nap, hanem mindenféle más is. Minden országnak megvan a maga KSH-ja, nekünk európaiaknak meg még van egy Eurostatunk is, benne vagyunk egy halom nemzetközi szervezetben (pl ENSZ és annak szatellit szervezetei WHO stb) amik szintén szépen gyártják a maguk statisztikáit. Ezekről ki-ki kiadja a maga kis összefoglalóját, vagy éppen pénzt kér a bővebb adatokért. De miért nem nyilvánosan hozzáférhetők ezek az adatok? Miért nem készítheti el maga az adófizető állampolgár az adatok elemzését? Ahogy a nyílt/szabad szoftver megteremtette az “érdek nélküli” együttműködést és tényleg minőségi termékeket képes produkálni, ugyanúgy nagy lehetőségek rejlenek abban ha szabaddá tesszük az adatokhoz való hozzáférést . Ez nem csak afféle hippi ideológia! Az angolszász világban mindenhol születtek már kormányzati kezdeményezések az adatok felszabadítására, összekapcsolva a gov2.0 (kb. webkettes eszközök beemelése a kormányzat eszköztárába). Akit érdekel a sztorinak ez az oldala is, ajánlom a wikipedia open government szócikkét, az O’Reilly Media Gov 2.0 Summit oldalát, illetve a Lathrop és Ruma Open Government könyvét. És már arra is akad példa hogy emberek tényleg kódolnak a közösségükért, megéri megnézni a Code for America oldalát (és elgondolkodni hogy miért nincs ilyen hazánkban és az EU-ban).

Nyílt adatok
Nos nem csak a kormányzati szervek gyűjtenek adatokat. Manapság minden cég elkerülhetetlenül adatokat generál működése során, ezek feldolgozása az üzleti intelligencia területe. De van egy olyan terület ami szintén adatokkal dolgozik; az újságírás. A zsurnaliszták adatokkal dolgoznak (persze itt nem a bulvár médiára gondolok), alapesetben a gazdasági újságíró lételeme a gazdasági statisztika, de a sportújságíró sem lehet meg adatok nélkül, és hát egy társadalmi riport is jó ha adatokkal van megtámogatva. Szerencsére a klasszikus újságírók nem azok a profithajhász, bezárkózó emberek és felismerték hogy a negyedi hatalmi ág is sokat tehet azzal a demokráciáért ha közzéteszi az általa összeszedett anyagokat. Ezt pedig a New York Times és a Guardian lapok profi módon tették meg. Nem csak egyszerűen letölthetők az adatok össze-vissza, hanem jól megtervezett API-kat hoztak létre erre. Ez pedig egy új újságírói módszertan kialakulását hozta magával, az adat újságírást (data journalism/data-driven journalism). Sajnos ennek bemutatása szétfeszítené egy poszt kereteit, az érdeklődő olvasónak ajánlom hogy olvassa el és nézze meg hogyan készült a Guardian API, és egy kis posztot arról hogy hogyan áll a helyzet a kontinentális Európában és megéri az augusztusban lezajlott data driven journalism konferencia anyagait és nézegetni.

Hogy kerül ide a nyelvészet?
Végre! Ideértünk! Nos, a legtöbb szépen megtervezett korpusz részét képezi egy “hírlap” minta. Nos, mindkét API lehetővé teszi a tartalom keresését, méghozzá nem csak egyszerűen kulcsszavakra kereshetünk, hanem a publikálás dátuma, tagek stb szerint. Tehát nem csak a klasszikus adatok (GDP, munkanélküliség, stb) hanem maguk a cikkek is hozzáférhetőek. Így egyaránt használhatjuk az újságok tartalmát klasszikus nyelvészeti kutatáshoz, vagy épp számítógépes nyelvészeti rendszerekben (én eddig ‘sentiment analysis’-ről, tőzsdei hírekkel kapcsolatos szakértői vélemények kinyeréséről és választási hírek elemzéséről hallottam, de tutira van ezer és egy más felhasználásuk is).

Egyszerű tartalom keresés R segítségével
Mi most megnézzük hogyan is indulhatunk el. Nem fogunk itt nagy dolgot véghez vinni. Gyakorlott programozók pedig takarják el a szemüket! Felteszem hogy az olvasó beszerezte már az API kulcsait, ha nem most itt az idő hogy a New York Times és a Guardian oldalain ezt megtedd. Szükséged lesz még az R legújabb verziójára (Ubuntusoknak ajánlom ezt a rövid írást) és installálnod kell a stringr és az RJSONIO csomagokat is.

Ha ez megvan, akkor kezdjük a Guardian-nel. Milyen gyakran említik kis hazánkat a britek? Nézzük!

Mit csináltunk itt? A query változóba tároljuk hogy mire keresnénk a tartalomban, ha más kifejezése akarunk rákeresni, egyszerűen kicseréljük. Az u és az u_end változók közé kerül be a keresett szó, mivel és a paste() függvénnyel tkp összefűzzük egy url címmé. Így nem teszünk mást mint a böngészőnk egy oldal betöltésekor. Érdemes beütni az R konzolba a raw.data kifejezést és egy entert hogy lássuk hogy néz ki amit letöltöttünk. Én úgy gondoltam a legegyszerűbb ha megnézzük mikor is publikálták azokat a cikkeket. Erre az ún “szabályos kifejezéseket” (regular expressions/regex) használjuk, itt a ÉÉÉÉ-HH-NN formátumot keressük segítségükkel. Az str_extract() függvény megkeresi az összes előfordulást, ezt pedig az as.data.frame() függvénnyel tkp egy táblázattá alakítjuk, amiből pedig egyszerűen készíthetünk grafikont a plot() függvénnyel (ahogy a táblázatkezelők is táblákból készítenek ábrát). Én ezt kaptam:

Ha érdekel mi mindent lehet “kibányászni” az API által küldött adatokból, a Wikibooks R könyve sokat segíthet neked (kiváltképp a Text Processing része). A NY Times API használatáról R-ben pedig itt olvashatsz. A poszt sokkal szofisztikáltabb példa programot mutat be, de ez persze azzal jár hogy bonyolultabb a fent bemutatott példánál. Remélem kedvet kaptál a felfedezéshez, és bonyolultabb kereséseket és grafikonokat is fogsz készíteni!

Az API-k és a Processing
Sokan nem szeretik az R grafikáját. Nos ebben van is igazság, annyiban hogy szép és színes-szagos grafikát nehéz R-ben készíteni. Nagyon érteni kell a nyelvhez, és ugye az interakció hiányzik. De ugye ott a Processing, csak valahogy használni kellene! Nos mint mindig itt a legfőbb gond az hogyan kapcsolódjunk az API-hoz. Persze öreg róka programozóknak ez nyilvánvaló, de a kezdőknek bele törik ám a bicskája rendesen!

Nos a lényeg hogy a kapott adatokat valahogy értelmezni kell. Az adatokat vagy xml vagy JSON formátumban kapjuk az API-tól. Szerintem egyszerűbb a JSON (bővebben itt olvashatsz erről) és egy alapos kis útmutató megmutatja neked itt hogyan teheted képessé processing vázlataidat kezelésére.
Nos nézzünk egy nagyon egyszerű példát. Hogyan tudjuk egy-egy keresés összes előfordulását megtalálni és szépen összevetni.

Nos ez valami ilyet produkált nálam:

Az apiKey változóba értelemszerűen írd be a saját api kulcsodat. A start és end date változókkal kijelölheted milyen időintervallumban keressen a tartalomban a programod. Remélem ennyi elég hogy ráérezz a dologra és legalább a példa programokat módosítgatod majd. Itt nincs jó vagy rossz megoldás. A cél itt szentesíti az eszközt! Ha van egy kérdésed amire a Guardian vagy az NY Times korpusza válaszolhat, akkor egy kis barkácsolással megtalálhatod azt!

Via: A New York Times és a Guardian API-k használata

511 Responses to A New York Times és a Guardian API-k használata

  1. Pingback: Buy viagra on line

  2. Pingback: cialis price costco

  3. Pingback: cialis on line

  4. Pingback: cialis 20 mg

  5. Pingback: Low cost canadian viagra

  6. Pingback: when does cialis go generic

  7. Pingback: generic cialis 2019

  8. Pingback: best over the counter ed pills

  9. Pingback: best ed pills at gnc

  10. Pingback: ed pills gnc

  11. Pingback: canada online pharmacy

  12. Pingback: Buy cialis online

  13. Pingback: vardenafil price

  14. Pingback: vardenafil 10mg

  15. Pingback: vardenafil pills

  16. Pingback: best online casinos that payout

  17. Pingback: play online casino real money

  18. Pingback: viagra sample

  19. Pingback: online casino real money us

  20. Pingback: casino slots

  21. Pingback: tadalafil canadian pharmacy

  22. Pingback: instant loans

  23. Pingback: instant loans

  24. Pingback: payday loans online

  25. Pingback: viagra for sale

  26. Pingback: betting sites in the world

  27. Pingback: play for real online casino games

  28. Pingback: best real money casinos

  29. Pingback: cialis 5 mg

  30. Pingback: marilyn

  31. Pingback: casinos online

  32. Pingback: new cialis

  33. Pingback: generic cialis

  34. Pingback: buy cialis

  35. Pingback: cialis internet

  36. Pingback: slots online

  37. Pingback: gambling games

  38. Pingback: best online casino

  39. Pingback: slot machines

  40. Pingback: viagra without a doctor prescription

  41. Pingback: viagra online prescription free

  42. Pingback: generic viagra canada

  43. Pingback: tadalafil cialis

  44. Pingback: cialis online

  45. Pingback: cialis dosage

  46. Pingback: cialis generic date

  47. Pingback: casino online real money

  48. Pingback: viagra online generic

  49. Pingback: play casino

  50. Pingback: how to order cialis online

  51. Pingback: Viagra 120 mg without prescription

  52. Pingback: Viagra 130 mg canada

  53. Pingback: Viagra 100 mg without prescription

  54. Pingback: cheap sildenafil

  55. Pingback: Viagra 150 mg otc

  56. Pingback: Viagra 200 mg online pharmacy

  57. Pingback: cialis coupon

  58. Pingback: where to buy Cialis 10mg

  59. Pingback: cheapest Cialis 40 mg

  60. Pingback: generic viagra

  61. Pingback: order viagra

  62. Pingback: where to buy Cialis 20mg

  63. Pingback: cheap cialis

  64. Pingback: buy cheap sildenafil

  65. Pingback: sildenafil 200 mg without a prescription

  66. Pingback: lasix 100 mg pills

  67. Pingback: how to purchase furosemide 100mg

  68. Pingback: propecia 1mg online

  69. Pingback: viagra generic

  70. Pingback: viagra price

  71. Pingback: lexapro 10mg online pharmacy

  72. Pingback: viagra

  73. Pingback: aldactone 25mg pills

  74. Pingback: cialis 10 mg tablet

  75. Pingback: order allopurinol 300 mg

  76. Pingback: viagra sans ordonnance livraison rapide

  77. Pingback: where can i buy strattera 25mg

  78. Pingback: best viagra alternative

  79. Pingback: cost of aricept 5mg

  80. Pingback: does generic cialis exist

  81. Pingback: atarax 25 mg australia

  82. Pingback: augmentin 875/125 mg online pharmacy

  83. Pingback: where can i buy avapro 150 mg

  84. Pingback: buying generic viagra online

  85. Pingback: avodart 0,5mg pills

  86. Pingback: baclofen 10 mg united states

  87. Pingback: bactrim 400/80mg cheap

  88. Pingback: buy cialis in australia

  89. Pingback: order Premarin 0,625mg

  90. Pingback: order cialis online

  91. Pingback: buy viagra

  92. Pingback: how to purchase cardizem 120 mg

  93. Pingback: viagra professional 100 mg

  94. Pingback: order catapres

  95. Pingback: how to buy ceclor

  96. Pingback: ceftin without prescription

  97. Pingback: how to buy celebrex

  98. Pingback: celexa over the counter

  99. Pingback: order cephalexin 500mg

  100. Pingback: order cipro 750 mg

  101. Pingback: claritin purchase

  102. Pingback: best real casino online

  103. Pingback: slot games

  104. Pingback: canadian pharmacy viagra

  105. Pingback: best online casinos that payout

  106. Pingback: casino world

  107. Pingback: slot games

  108. Pingback: real online casino

  109. Pingback: real online casino

  110. Pingback: real money casino games

  111. Pingback: online casino games real money

  112. Pingback: best slots to play online

  113. Pingback: general car insurance quotes

  114. Pingback: generic cialis

  115. Pingback: amica car insurance

  116. Pingback: order viagra online without prescription

  117. Pingback: aaa car insurance quotes reviews

  118. Pingback: car insurance florida

  119. Pingback: allstate car insurance quotes

  120. Pingback: car insurance specialists

  121. Pingback: best car insurance rates

  122. Pingback: generic cialis

  123. Pingback: car insurance quotes rates

  124. Pingback: car insurance florida

  125. Pingback: good to go car insurance quotes

  126. Pingback: personal loans company

  127. Pingback: midwest payday loans

  128. Pingback: Fda approved viagra

  129. Pingback: payday loans portland or

  130. Pingback: installment loans near me

  131. Pingback: get quick loans

  132. Pingback: bad credit loans no credit check

  133. Pingback: payday loans

  134. Pingback: personal loans for bad credit

  135. Pingback: viagra online reviews

  136. Pingback: cbd oil for cancer

  137. Pingback: the best cbd oil on the market

  138. Pingback: where can i buy amoxocillin

  139. Pingback: cbd oil 300mg

  140. Pingback: viagra pills india pharmacy

  141. Pingback: cheap sildenafil online no prescription

  142. Pingback: cbd oil for pain management

  143. Pingback: viagra online over the counter

  144. Pingback: cbd cannabis oil for sale

  145. Pingback: can you buy viagra in europe

  146. Pingback: cbd oil for sale in colorado springs

  147. Pingback: viagra pill in stores

  148. Pingback: generic viagra cost canada

  149. Pingback: can cbd oil help with pain?

  150. Pingback: cbd oil for cancer

  151. Pingback: cbd cannabis oil

  152. Pingback: personal loans

  153. Pingback: viagra cvs

  154. Pingback: assignments help

  155. Pingback: generic viagra prescription online

  156. Pingback: cheap essays

  157. Pingback: academic essay writing service

  158. Pingback: a manual for writers of term papers

  159. Pingback: homeworks of america

  160. Pingback: online homework

  161. Pingback: order viagra online australia

  162. Pingback: essay writing service australia

  163. Pingback: custom essay writing services reviews

  164. Pingback: free research paper writer

  165. Pingback: does money buy happiness essay

  166. Pingback: how to buy cleocin 300 mg

  167. Pingback: clomid 25 mg purchase

  168. Pingback: cheap viagra pills canada

  169. Pingback: clonidine united states

  170. Pingback: clozaril 100mg no prescription

  171. Pingback: Sale viagra

  172. Pingback: colchicine coupon

  173. Pingback: cost of cialis without insurance

  174. Pingback: symbicort inhaler cheap

  175. Pingback: how to buy combivent 50/20mcg

  176. Pingback: coreg no prescription

  177. Pingback: cialis

  178. Pingback: compazine 5 mg without a prescription

  179. Pingback: Buy viagra overnight delivery

  180. Pingback: cheapest coumadin

  181. Pingback: where to buy viagra locally

  182. Pingback: where to buy cozaar

  183. Pingback: https://customessaywriterbyz.com

  184. Pingback: mba dissertation

  185. Pingback: cheap crestor

  186. Pingback: online help with essay writing

  187. Pingback: cheap essay writer service

  188. Pingback: cymbalta online

  189. Pingback: thesis editing service

  190. Pingback: buy cheap research papers

  191. Pingback: find someone to write my paper

  192. Pingback: buy generic viagra

  193. Pingback: thesis help services

  194. Pingback: dapsone caps united kingdom

  195. Pingback: ddavp 0.1 mg without a prescription

  196. Pingback: depakote 250 mg usa

  197. Pingback: diamox prices

  198. Pingback: cheap differin 15g

  199. Pingback: diltiazem 30mg online

  200. Pingback: Buy viagra in us

  201. Pingback: where to buy doxycycline

  202. Pingback: dramamine 50 mg purchase

  203. Pingback: canada online pharmacy

  204. Pingback: elavil no prescription

  205. Pingback: erythromycin 250mg for sale

  206. Pingback: etodolac canada

  207. Pingback: Zithromax india

  208. Pingback: cheap flomax

  209. Pingback: flonase nasal spray 50 mcg usa

  210. Pingback: great essay writers

  211. Pingback: how to buy garcinia cambogia 100caps

  212. Pingback: geodon over the counter

  213. Pingback: how to overcome ed naturally

  214. Pingback: hyzaar canada

  215. Pingback: imdur nz

  216. Pingback: cialis professional

  217. Pingback: cialis generic

  218. Pingback: buy cialis

  219. Pingback: generic cialis

  220. Pingback: cheap imitrex 25 mg

  221. Pingback: where to buy imodium

  222. Pingback: viagra alternative

  223. Pingback: how long does viagra last

  224. Pingback: side effects of viagra

  225. Pingback: viagra over the counter

  226. Pingback: news

  227. Pingback: useful source

  228. Pingback: viagra cost

  229. Pingback: viagra online canada pharmacy

  230. Pingback: imuran pharmacy

  231. Pingback: indocin 50 mg pills

  232. Pingback: can you buy zithromax over the counter in mexico

  233. Pingback: lamisil coupon

  234. Pingback: how to buy levaquin

  235. Pingback: viagra without doctor prescription

  236. Pingback: lopid 300mg cheap

  237. Pingback: lopressor nz

  238. Pingback: buy viagra online

  239. Pingback: luvox cheap

  240. Pingback: macrobid 50 mg online

  241. Pingback: order viagra paypal

  242. Pingback: meclizine 25mg canada

  243. Pingback: cheap prescription drugs online

  244. Pingback: mestinon australia

  245. Pingback: ed meds online without doctor prescription

  246. Pingback: canadian pharmacies

  247. Pingback: micardis 40 mg cheap

  248. Pingback: mail order pharmacies

  249. Pingback: prescription discount

  250. Pingback: generic Aciclovir

  251. Pingback: where can i buy mobic 7,5 mg

  252. Pingback: canadian online pharmacies prescription drugs

  253. Pingback: buy pfizer viagra without prescription

  254. Pingback: motrin 600 mg cheap

  255. Pingback: nortriptyline 25 mg pills

  256. Pingback: canada drugs

  257. Pingback: periactin uk

  258. Pingback: phenergan generic

  259. Pingback: plaquenil nz

  260. Pingback: fda approved canadian online pharmacies

  261. Pingback: prednisolone without a prescription

  262. Pingback: prevacid medication

  263. Pingback: prilosec coupon

  264. Pingback: proair inhaler pharmacy

  265. Pingback: buy viagra online

  266. Pingback: procardia 30mg over the counter

  267. Pingback: cheap viagra

  268. Pingback: proscar 5mg online

  269. Pingback: viagra in calgary

  270. Pingback: protonix without a prescription

  271. Pingback: provigil without a prescription

  272. Pingback: pulmicort cheap

  273. Pingback: where can i buy amoxicillin online

  274. Pingback: pyridium cost

  275. Pingback: order zithromax without prescription

  276. Pingback: reglan 10mg tablets

  277. Pingback: periactin tablets 4mg uk

  278. Pingback: remeron canada

  279. Pingback: retin-a cream 0.025% united kingdom

  280. Pingback: zyrtec-d

  281. Pingback: revatio nz

  282. Pingback: risperdal price

  283. Pingback: robaxin 500mg no prescription

  284. Pingback: rogaine price

  285. Pingback: seroquel 300mg cost

  286. Pingback: singulair coupon

  287. Pingback: buy skelaxin 400mg

  288. Pingback: spiriva canada

  289. Pingback: viagra over the counter usa 2020

  290. Pingback: tenormin 50mg price

  291. Pingback: thorazine without a doctor prescription

  292. Pingback: toprol online pharmacy

  293. Pingback: cheapest generic viagra

  294. Pingback: tricor 160mg purchase

  295. Pingback: buy valtrex

  296. Pingback: vantin tablets

  297. Pingback: verapamil usa

  298. Pingback: voltaren nz

  299. Pingback: wellbutrin prices

  300. Pingback: where to buy cialis at a reasonable price

  301. Pingback: zanaflex 2 mg medication

  302. Pingback: drugs without prescription

  303. Pingback: zestril 2,5mg nz

  304. Pingback: go to the website

  305. Pingback: best site

  306. Pingback: zocor purchase

  307. Pingback: zovirax 200 mg uk

  308. Pingback: zithromax online usa no prescription

  309. Pingback: viagra pas cher en belgique

  310. Pingback: zyloprim 300mg nz

  311. Pingback: zyprexa no prescription

  312. Pingback: cost of zyvox 600 mg

  313. Pingback: sildenafil otc

  314. Pingback: tadalafil 20 mg online

  315. Pingback: furosemide 40 mg medication

  316. Pingback: escitalopram united states

  317. Pingback: cheapest aripiprazole

  318. Pingback: buy amoxicillin

  319. Pingback: where to buy pioglitazone

  320. Pingback: spironolactone 25 mg online

  321. Pingback: where to buy fexofenadine 120mg

  322. Pingback: best place to buy generic drugs

  323. Pingback: glimepiride without prescription

  324. Pingback: meclizine pharmacy

  325. Pingback: leflunomide 10mg without a prescription

  326. Pingback: atomoxetine 25 mg coupon

  327. Pingback: donepezil 10 mg united states

  328. Pingback: anastrozole 1 mg over the counter

  329. Pingback: buy viagra generic

  330. Pingback: irbesartan 150mg cost

  331. Pingback: cheapest dutasteride 0,5mg

  332. Pingback: how to purchase olmesartan

  333. Pingback: buspirone 10 mg without prescription

  334. Pingback: cheap clonidine 0.1mg

  335. Pingback: cefuroxime without prescription

  336. Pingback: celecoxib prices

  337. Pingback: cialis insurance coverage

  338. Pingback: citalopram 10 mg without prescription

  339. Pingback: cephalexin 500mg uk

  340. Pingback: cialis extra

  341. Pingback: ciprofloxacin 500mg australia

  342. Pingback: tadalafil

  343. Pingback: generic cialis from india

  344. Pingback: loratadine 10mg purchase

  345. Pingback: buy cialis

  346. Pingback: clindamycin pharmacy

  347. Pingback: clozapine medication

  348. Pingback: prochlorperazine 5mg medication

  349. Pingback: cialis brand 20 mg

  350. Pingback: carvedilol 3.12 mg usa

  351. Pingback: buy generic viagra

  352. Pingback: warfarin 5 mg usa

  353. Pingback: rosuvastatin over the counter

  354. Pingback: brand levitra cialis viagra add to cart

  355. Pingback: cheap divalproex

  356. Pingback: where to buy trazodone

  357. Pingback: tolterodine 2 mg without prescription

  358. Pingback: 300mg sildenafil

  359. Pingback: acetazolamide tablet

  360. Pingback: fluconazole 50 mg tablet

  361. Pingback: phenytoin 100 mg uk

  362. Pingback: oxybutyninmg without a doctor prescription

  363. Pingback: doxycycline 100mg medication

  364. Pingback: buy viagra online in canada with prescription

  365. Pingback: bisacodyl 5 mg prices

  366. Pingback: venlafaxine 37.5 mg no prescription

  367. Pingback: buy generic viagra

  368. Pingback: cheap amitriptyline

  369. Pingback: no presciption cialis

  370. Pingback: permethrin 30g cheaporder permethrin

  371. Pingback: 141genericExare

  372. Pingback: where can i buy erythromycin 250 mg

  373. Pingback: kpgouomi

  374. Pingback: cheap cialis

  375. Pingback: estradiol cost

  376. Pingback: cheap etodolac 200mg

  377. Pingback: erection pills

  378. Pingback: tamsulosinmg pharmacy

  379. Pingback: ed treatment drugs

  380. Pingback: dykszmzd

  381. Pingback: fluticasone mcg without prescription

  382. Pingback: ed pill

  383. Pingback: alendronate 70 mg no prescription

  384. Pingback: viagra jelly how to use

  385. Pingback: how to buy viagra cheap

  386. Pingback: wat kost cialis 10 mg bij de apotheek

  387. Pingback: hoe duur is viagra

  388. Pingback: nitrofurantoin 100 mg pills

  389. Pingback: how long does ivermectin for horses in the paste last in the refrigerator

  390. Pingback: how long does azithromycin take to work for chlamydia

  391. Pingback: buy viagra online

  392. Pingback: viagra with bpay

  393. Pingback: lasix medication

  394. Pingback: hydrochlorothiazide over the counter

  395. Pingback: ceftin tablets

  396. Pingback: isosorbide 30 mg no prescription

  397. Pingback: buy noroxin online

  398. Pingback: sumatriptan 100 mg pills

  399. Pingback: what dosage of cialis do i need

  400. Pingback: loperamide 2 mg online

  401. Pingback: comprar cialis

  402. Pingback: lowest price cialis

  403. Pingback: cost of viagra

  404. Pingback: omnicef for sale

  405. Pingback: azathioprine online pharmacy

  406. Pingback: canadian viagra cialis

  407. Pingback: propranolol 80mg otc

  408. Pingback: viagra 100 mg

  409. Pingback: comprar viagra

  410. Pingback: hard erections cialis

  411. Pingback: writing essay service

  412. Pingback: writing research

  413. Pingback: can you write my essay

  414. Pingback: help me with write my essay

  415. Pingback: current business ethics issues essay

  416. Pingback: lamotrigine cost

  417. Pingback: cheapest terbinafine 250 mg

  418. Pingback: buy digoxin 0.25mg

  419. Pingback: buy prescription drugs

  420. Pingback: levothyroxine mcg without prescription

  421. Pingback: prescription amoxicillin

  422. Pingback: buy lasix without prescription

  423. Pingback: azithromycin 2 pills

  424. Pingback: how to buy atorvastatin 40 mg

  425. Pingback: stromectol tab

  426. Pingback: albuterol generic

  427. Pingback: generic viagra walmart

  428. Pingback: when will viagra be generic

  429. Pingback: gemfibrozil without prescription

  430. Pingback: 100mg viagra

  431. Pingback: cheap viagra online

  432. Pingback: average cost of generic zithromax

  433. Pingback: metoprolol purchase

  434. Pingback: viagra amazon

  435. Pingback: cheap clotrimazole

  436. Pingback: doxycycline diarrhea

  437. Pingback: prednisolone osteoporosis

  438. Pingback: men taking clomid

  439. Pingback: priligy in 5htc

  440. Pingback: diflucan gel

  441. Pingback: synthroid wikipedia

  442. Pingback: metoclopramide online pharmacy

  443. Pingback: cheap ed pills from canada

  444. Pingback: help me write a thesis statement

  445. Pingback: education dissertation topics

  446. Pingback: zithromax capsules 250mg

  447. Pingback: phd degree

  448. Pingback: neurontin 300mg tablet cost

  449. Pingback: buy zithromax

  450. Pingback: propecia hair pills

  451. Pingback: india pharmacy without dr prescriptions

  452. Pingback: neurontin 800 milligrams

  453. Pingback: metformin recall 2016

  454. Pingback: paxil drug class

  455. Pingback: plaquenil monitoring

  456. Pingback: ed pills

  457. Pingback: viagra without a doctor prescription canada

  458. Pingback: clomid coupon

  459. Pingback: amoxicillin 200 mg tablet

  460. Pingback: metformin 104 pill

  461. Pingback: propecia without prescription

  462. Pingback: where can i buy propecia

  463. Pingback: erection pills that work

  464. Pingback: lasix 500 buy

  465. Pingback: pharmacy express

  466. Pingback: pharmacy prices

  467. Pingback: buy cialis online overnight

  468. Pingback: taking cialis soft tabs

  469. Pingback: buy viagra online without a prescription

  470. Pingback: what are you looking for on tinder

  471. Pingback: viagra ad

  472. Pingback: lisinopril generic 20 mg

  473. Pingback: dating site in usa and canada for free

  474. Pingback: zestoretic tabs

  475. Pingback: prednisone and cialis

  476. Pingback: cialis free trial phone number

  477. Pingback: order original cialis online

  478. Pingback: vigra vs cialis

  479. Pingback: blue cross blue shield online pharmacy

  480. Pingback: cialis 20mg low price

  481. Pingback: canadian pharmacies certified

  482. Pingback: best rogue online pharmacy

  483. Pingback: buy cialis very cheap prices fast delivery

  484. Pingback: buy cialis 36 hour

  485. Pingback: cialis 20mg usa

  486. Pingback: ed treatment review

  487. Pingback: valtrex over the counter uk

  488. Pingback: erection pills

  489. Pingback: injections for ed

  490. Pingback: viagra cost per pill

  491. Pingback: doxy

  492. Pingback: over the counter ed

  493. Pingback: online canadian drugstore

  494. Pingback: buy ivermectin cream

  495. Pingback: plaquenil purchase online

  496. Pingback: hydroxychloroquine 90mg

  497. Pingback: generic priligy wiki

  498. Pingback: ivermectin stromectol

  499. Pingback: ivermectin australia

  500. Pingback: ivermectin over the counter canada

  501. Pingback: ventolin nebulizer dose

  502. Pingback: ed treatments

  503. Pingback: hydroxychloroquine treatment for coronavirus

  504. Pingback: buying ed pills online

  505. Pingback: where to buy viagra online

  506. Pingback: buy viagra online usa

  507. Pingback: how to get ciails without a doctor

  508. Pingback: buy cialis online cheap

  509. Pingback: henry ford hydroxychloroquine study

  510. Pingback: what is hydroxychloroquine used to treat

  511. Pingback: where to buy cialis online

Comments are closed.