├── .gitignore ├── README.md ├── main.py ├── models ├── __init__.py ├── analytics.py └── webpage.py ├── sample_data ├── 1.json ├── 2.json └── 3.json ├── stopwords.txt └── tools ├── __init__.py └── general.py /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | __pycache__ 3 | *.pyc 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![](http://i.imgur.com/SWa27GO.png) 2 | 3 | ## Overview 4 | 5 | Tool for analyzing websites using Python. 6 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from models.webpage import Webpage 2 | from models.analytics import Analytics 3 | from tools.general import * 4 | 5 | 6 | data = read_json('sample_data/1.json') 7 | webpage = Webpage(data) 8 | analytics = Analytics(data) 9 | 10 | print('\n' + 'URL:') 11 | print(webpage.url) 12 | 13 | print('\n' + 'Status:') 14 | print(webpage.status) 15 | 16 | print('\n' + 'Content length:') 17 | print(len(analytics.content)) 18 | 19 | print('\n' + 'Title:') 20 | print(webpage.title) 21 | 22 | print('\n' + 'Meta description:') 23 | print(webpage.meta_description) 24 | 25 | print('\n' + 'Links:') 26 | for link in webpage.links: 27 | print(link) 28 | 29 | print('\n' + 'Images:') 30 | for image in webpage.images: 31 | print(image) 32 | 33 | print('\n' + 'Headings:') 34 | heading_tags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] 35 | for h in heading_tags: 36 | for x in webpage.get_tag_content(h): 37 | print(h + ' - ' + x) 38 | 39 | print('\n' + 'Paragraphs:') 40 | for i, x in enumerate(webpage.get_tag_content('p')): 41 | print(str(i+1) + ' - ' + x) 42 | 43 | print('\n' + 'Keyword frequency:') 44 | for item in analytics.keyword_count: 45 | print(str(item[1]) + ' - ' + item[0]) 46 | -------------------------------------------------------------------------------- /models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buckyroberts/Web-Analyzer/a639773c678b47fae06c2959164c634144b44d16/models/__init__.py -------------------------------------------------------------------------------- /models/analytics.py: -------------------------------------------------------------------------------- 1 | from collections import Counter 2 | from tools.general import * 3 | 4 | 5 | class Analytics: 6 | 7 | def __init__(self, data): 8 | self.data = data 9 | self.stopwords = file_to_set('stopwords.txt') 10 | 11 | self.content = self.get_content() 12 | self.keyword_count = self.get_keyword_count() 13 | 14 | def get_content(self): 15 | results = '' 16 | for item in self.data['tags']: 17 | if item['content']: 18 | results += item['content'] + ' ' 19 | return results 20 | 21 | def get_keyword_count(self): 22 | all_words = self.content.split() 23 | good_words = [] 24 | for w in all_words: 25 | w = self.clean_word(w) 26 | if w.strip() in self.stopwords: 27 | continue 28 | if len(w) <= 1: 29 | continue 30 | good_words.append(w) 31 | word_count = Counter(good_words) 32 | return self.sort_counter(word_count) 33 | 34 | @staticmethod 35 | def sort_counter(counter): 36 | results = [] 37 | for item in sorted(counter, key=counter.__getitem__, reverse=True): 38 | results.append([item, counter[item]]) 39 | return results 40 | 41 | @staticmethod 42 | def clean_word(word): 43 | word = word.lower() 44 | for x in list('`~!@#$%^&*()-_=+{}[]<>:;"|,./?'): 45 | word = word.replace(x, '') 46 | return word 47 | -------------------------------------------------------------------------------- /models/webpage.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | class Webpage: 4 | 5 | def __init__(self, data): 6 | self.data = data 7 | self.url = self.data['url'] 8 | self.status = self.data['status'] 9 | self.response_headers = self.data['headers'] 10 | 11 | self.title = self.get_tag_content('title')[0] 12 | self.meta_description = self.get_meta_description() 13 | 14 | self.links = self.get_links() 15 | self.images = self.get_images() 16 | 17 | # Returns all images as lists [src, alt] 18 | def get_images(self): 19 | results = [] 20 | for item in self.data['tags']: 21 | try: 22 | if item['name'] == 'img': 23 | src = item['attributes']['src'] 24 | alt = item['attributes']['alt'] 25 | if not src: 26 | src = '' 27 | if not alt: 28 | alt = '' 29 | results.append([src, alt]) 30 | except KeyError: 31 | pass 32 | return results 33 | 34 | # Returns all links as lists [href, contents] 35 | def get_links(self): 36 | results = [] 37 | for item in self.data['tags']: 38 | try: 39 | if item['name'] == 'a': 40 | url = item['attributes']['href'] 41 | content = item['content'] 42 | if not url: 43 | url = '' 44 | if not content: 45 | content = '' 46 | results.append([url, content]) 47 | except TypeError: 48 | pass 49 | except KeyError: 50 | pass 51 | return sorted(results) 52 | 53 | def get_meta_description(self): 54 | for item in self.data['tags']: 55 | if item['name'] == 'meta': 56 | try: 57 | if item['attributes']['name'] == 'description': 58 | return item['attributes']['content'] 59 | except KeyError: 60 | continue 61 | return None 62 | 63 | def get_tag_content(self, tag): 64 | results = [] 65 | for item in self.data['tags']: 66 | if item['name'] == tag and item['content']: 67 | results.append(item['content']) 68 | return results 69 | 70 | def get_tag_attributes(self, tag, attr): 71 | results = [] 72 | for item in self.data['tags']: 73 | if item['name'] == tag and item['attributes'][attr]: 74 | results.append(item['attributes'][attr]) 75 | return results 76 | -------------------------------------------------------------------------------- /sample_data/1.json: -------------------------------------------------------------------------------- 1 | { 2 | "tags": [ 3 | { 4 | "attributes": { 5 | "charset": "utf-8" 6 | }, 7 | "content": null, 8 | "name": "meta" 9 | }, 10 | { 11 | "attributes": { 12 | "content": "width=device-width", 13 | "name": "viewport" 14 | }, 15 | "content": null, 16 | "name": "meta" 17 | }, 18 | { 19 | "attributes": null, 20 | "content": "Buy Historical Stock Market Analytics JSON API | Stock Data API", 21 | "name": "title" 22 | }, 23 | { 24 | "attributes": { 25 | "content": "Historical stock data JSON REST API for financial market data. Includes over 6,000 companies\n and more than 50 advanced technical indicators.", 26 | "name": "description" 27 | }, 28 | "content": null, 29 | "name": "meta" 30 | }, 31 | { 32 | "attributes": { 33 | "rel": [ 34 | "shortcut", 35 | "icon" 36 | ], 37 | "href": "/static/website/images/icons/favicon.ico" 38 | }, 39 | "content": null, 40 | "name": "link" 41 | }, 42 | { 43 | "attributes": { 44 | "rel": [ 45 | "stylesheet" 46 | ], 47 | "href": "https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css" 48 | }, 49 | "content": null, 50 | "name": "link" 51 | }, 52 | { 53 | "attributes": { 54 | "type": "text/css", 55 | "rel": [ 56 | "stylesheet" 57 | ], 58 | "href": "http://fonts.googleapis.com/css?family=Droid+Sans:400,700" 59 | }, 60 | "content": null, 61 | "name": "link" 62 | }, 63 | { 64 | "attributes": { 65 | "type": "text/css", 66 | "rel": [ 67 | "stylesheet" 68 | ], 69 | "href": "/static/website/css/foundation.css" 70 | }, 71 | "content": null, 72 | "name": "link" 73 | }, 74 | { 75 | "attributes": { 76 | "type": "text/css", 77 | "rel": [ 78 | "stylesheet" 79 | ], 80 | "href": "/static/website/css/master.css" 81 | }, 82 | "content": null, 83 | "name": "link" 84 | }, 85 | { 86 | "attributes": { 87 | "rel": [ 88 | "stylesheet" 89 | ], 90 | "href": "/static/website/css/flexslider.css" 91 | }, 92 | "content": null, 93 | "name": "link" 94 | }, 95 | { 96 | "attributes": { 97 | "rel": [ 98 | "stylesheet" 99 | ], 100 | "href": "/static/website/css/animate.css" 101 | }, 102 | "content": null, 103 | "name": "link" 104 | }, 105 | { 106 | "attributes": { 107 | "rel": [ 108 | "stylesheet" 109 | ], 110 | "href": "/static/website/css/owl.carousel.css" 111 | }, 112 | "content": null, 113 | "name": "link" 114 | }, 115 | { 116 | "attributes": { 117 | "rel": [ 118 | "stylesheet" 119 | ], 120 | "href": "/static/website/css/owl.theme.css" 121 | }, 122 | "content": null, 123 | "name": "link" 124 | }, 125 | { 126 | "attributes": { 127 | "class": [ 128 | "phone" 129 | ] 130 | }, 131 | "content": "+1 (801) 123-4567", 132 | "name": "li" 133 | }, 134 | { 135 | "attributes": { 136 | "href": "/contact/" 137 | }, 138 | "content": "HELP & SUPPORT", 139 | "name": "a" 140 | }, 141 | { 142 | "attributes": { 143 | "href": "/contact/" 144 | }, 145 | "content": "CONTACT US", 146 | "name": "a" 147 | }, 148 | { 149 | "attributes": { 150 | "href": "/register/" 151 | }, 152 | "content": "SIGN UP", 153 | "name": "a" 154 | }, 155 | { 156 | "attributes": { 157 | "href": "/login/" 158 | }, 159 | "content": "LOGIN", 160 | "name": "a" 161 | }, 162 | { 163 | "attributes": { 164 | "src": "/static/website/images/logo.png", 165 | "alt": "Stock Data API Logo" 166 | }, 167 | "content": null, 168 | "name": "img" 169 | }, 170 | { 171 | "attributes": { 172 | "href": "/about/" 173 | }, 174 | "content": "ABOUT US", 175 | "name": "a" 176 | }, 177 | { 178 | "attributes": { 179 | "href": "/documentation/" 180 | }, 181 | "content": "DOCS", 182 | "name": "a" 183 | }, 184 | { 185 | "attributes": { 186 | "href": "/features/" 187 | }, 188 | "content": "FEATURES", 189 | "name": "a" 190 | }, 191 | { 192 | "attributes": { 193 | "href": "/purchase/" 194 | }, 195 | "content": "PURCHASE", 196 | "name": "a" 197 | }, 198 | { 199 | "attributes": { 200 | "href": "/purchase/" 201 | }, 202 | "content": "BEGINNER", 203 | "name": "a" 204 | }, 205 | { 206 | "attributes": null, 207 | "content": "30 requests/min", 208 | "name": "span" 209 | }, 210 | { 211 | "attributes": { 212 | "href": "/purchase/" 213 | }, 214 | "content": "PRO", 215 | "name": "a" 216 | }, 217 | { 218 | "attributes": null, 219 | "content": "60 requests/min", 220 | "name": "span" 221 | }, 222 | { 223 | "attributes": { 224 | "href": "/purchase/" 225 | }, 226 | "content": "ULTIMATE", 227 | "name": "a" 228 | }, 229 | { 230 | "attributes": null, 231 | "content": "200 requests/min", 232 | "name": "span" 233 | }, 234 | { 235 | "attributes": { 236 | "href": "/contact/" 237 | }, 238 | "content": "SUPPORT", 239 | "name": "a" 240 | }, 241 | { 242 | "attributes": { 243 | "href": "/contact/" 244 | }, 245 | "content": "CONTACT US", 246 | "name": "a" 247 | }, 248 | { 249 | "attributes": { 250 | "target": "_blank", 251 | "href": "https://github.com/buckyroberts/python-Stock-Data" 252 | }, 253 | "content": "PYTHON", 254 | "name": "a" 255 | }, 256 | { 257 | "attributes": null, 258 | "content": "Home", 259 | "name": "strong" 260 | }, 261 | { 262 | "attributes": null, 263 | "content": "About Us", 264 | "name": "strong" 265 | }, 266 | { 267 | "attributes": null, 268 | "content": "Documentation", 269 | "name": "strong" 270 | }, 271 | { 272 | "attributes": { 273 | "href": "/documentation/" 274 | }, 275 | "content": "- Overview", 276 | "name": "a" 277 | }, 278 | { 279 | "attributes": { 280 | "href": "/documentation/" 281 | }, 282 | "content": "- Company Overview", 283 | "name": "a" 284 | }, 285 | { 286 | "attributes": { 287 | "href": "/documentation/" 288 | }, 289 | "content": "- Historical Price Data", 290 | "name": "a" 291 | }, 292 | { 293 | "attributes": null, 294 | "content": "Features & Indicators", 295 | "name": "strong" 296 | }, 297 | { 298 | "attributes": null, 299 | "content": "Purchase", 300 | "name": "strong" 301 | }, 302 | { 303 | "attributes": { 304 | "href": "/purchase/" 305 | }, 306 | "content": "- Beginner", 307 | "name": "a" 308 | }, 309 | { 310 | "attributes": { 311 | "href": "/purchase/" 312 | }, 313 | "content": "- Pro", 314 | "name": "a" 315 | }, 316 | { 317 | "attributes": { 318 | "href": "/purchase/" 319 | }, 320 | "content": "- Ultimate", 321 | "name": "a" 322 | }, 323 | { 324 | "attributes": null, 325 | "content": "Support", 326 | "name": "strong" 327 | }, 328 | { 329 | "attributes": { 330 | "href": "/contact/" 331 | }, 332 | "content": "- Contact Us", 333 | "name": "a" 334 | }, 335 | { 336 | "attributes": { 337 | "href": "https://github.com/buckyroberts/python-Stock-Data" 338 | }, 339 | "content": "- Python Wrapper", 340 | "name": "a" 341 | }, 342 | { 343 | "attributes": { 344 | "src": "/static/website/images/slider/slide-1.jpg", 345 | "alt": "Access historical stock data" 346 | }, 347 | "content": null, 348 | "name": "img" 349 | }, 350 | { 351 | "attributes": null, 352 | "content": "ACCESS HISTORICAL STOCK DATA", 353 | "name": "span" 354 | }, 355 | { 356 | "attributes": null, 357 | "content": "All exchanges including NASDAQ, NYSE, and AMEX", 358 | "name": "h4" 359 | }, 360 | { 361 | "attributes": { 362 | "href": "/register/" 363 | }, 364 | "content": "Discover the benefits of historical stock data", 365 | "name": "a" 366 | }, 367 | { 368 | "attributes": { 369 | "src": "/static/website/images/slider/slide-2.jpg", 370 | "alt": "Analyze over 50 technical indicators" 371 | }, 372 | "content": null, 373 | "name": "img" 374 | }, 375 | { 376 | "attributes": null, 377 | "content": "ANALYZE 50+ TECHNICAL INDICATORS", 378 | "name": "span" 379 | }, 380 | { 381 | "attributes": null, 382 | "content": "Popular technical indicators including RSI, Fast Stochastics, and MACD", 383 | "name": "h4" 384 | }, 385 | { 386 | "attributes": { 387 | "href": "/register/" 388 | }, 389 | "content": "Start analyzing historical stock prices today", 390 | "name": "a" 391 | }, 392 | { 393 | "attributes": { 394 | "src": "/static/website/images/slider/slide-3.jpg", 395 | "alt": "Award winning JSON REST API" 396 | }, 397 | "content": null, 398 | "name": "img" 399 | }, 400 | { 401 | "attributes": null, 402 | "content": "DATA FOR OVER 6,000 COMPANIES", 403 | "name": "span" 404 | }, 405 | { 406 | "attributes": null, 407 | "content": "Historical data for all of the world\u2019s most popular companies", 408 | "name": "h4" 409 | }, 410 | { 411 | "attributes": { 412 | "href": "/register/" 413 | }, 414 | "content": "Sign up today for instant access", 415 | "name": "a" 416 | }, 417 | { 418 | "attributes": null, 419 | "content": "You need advanced analytics.", 420 | "name": "span" 421 | }, 422 | { 423 | "attributes": { 424 | "class": [ 425 | "button", 426 | "round", 427 | "large" 428 | ], 429 | "href": "/register/" 430 | }, 431 | "content": "SIGNUP NOW", 432 | "name": "a" 433 | }, 434 | { 435 | "attributes": { 436 | "class": [ 437 | "title" 438 | ] 439 | }, 440 | "content": "BEGINNER", 441 | "name": "h3" 442 | }, 443 | { 444 | "attributes": null, 445 | "content": "$29.99", 446 | "name": "h4" 447 | }, 448 | { 449 | "attributes": null, 450 | "content": "price / month", 451 | "name": "span" 452 | }, 453 | { 454 | "attributes": null, 455 | "content": "30 requests per minute", 456 | "name": "li" 457 | }, 458 | { 459 | "attributes": null, 460 | "content": "Data for 6,000 Companies", 461 | "name": "li" 462 | }, 463 | { 464 | "attributes": null, 465 | "content": "All Core Price History", 466 | "name": "li" 467 | }, 468 | { 469 | "attributes": null, 470 | "content": "Basic company overviews", 471 | "name": "li" 472 | }, 473 | { 474 | "attributes": { 475 | "class": [ 476 | "button", 477 | "radius", 478 | "small" 479 | ], 480 | "href": "/register/" 481 | }, 482 | "content": "start analyzing now", 483 | "name": "a" 484 | }, 485 | { 486 | "attributes": { 487 | "class": [ 488 | "title" 489 | ] 490 | }, 491 | "content": "PRO", 492 | "name": "h3" 493 | }, 494 | { 495 | "attributes": null, 496 | "content": "$49.99", 497 | "name": "h4" 498 | }, 499 | { 500 | "attributes": null, 501 | "content": "price / month", 502 | "name": "span" 503 | }, 504 | { 505 | "attributes": null, 506 | "content": "60 requests per minute", 507 | "name": "li" 508 | }, 509 | { 510 | "attributes": null, 511 | "content": "Data for 6,000 Companies", 512 | "name": "li" 513 | }, 514 | { 515 | "attributes": null, 516 | "content": "All History & Overviews", 517 | "name": "li" 518 | }, 519 | { 520 | "attributes": null, 521 | "content": "5+ Technical Indicators", 522 | "name": "li" 523 | }, 524 | { 525 | "attributes": { 526 | "class": [ 527 | "button", 528 | "radius", 529 | "small" 530 | ], 531 | "href": "/register/" 532 | }, 533 | "content": "choose a pro plan", 534 | "name": "a" 535 | }, 536 | { 537 | "attributes": { 538 | "class": [ 539 | "title" 540 | ] 541 | }, 542 | "content": "ULTIMATE", 543 | "name": "h3" 544 | }, 545 | { 546 | "attributes": null, 547 | "content": "$99.99", 548 | "name": "h4" 549 | }, 550 | { 551 | "attributes": null, 552 | "content": "price / month", 553 | "name": "span" 554 | }, 555 | { 556 | "attributes": null, 557 | "content": "200 requests per minute", 558 | "name": "li" 559 | }, 560 | { 561 | "attributes": null, 562 | "content": "Data for 6,000 Companies", 563 | "name": "li" 564 | }, 565 | { 566 | "attributes": null, 567 | "content": "All History & Overviews", 568 | "name": "li" 569 | }, 570 | { 571 | "attributes": null, 572 | "content": "10+ Technical Indicators", 573 | "name": "li" 574 | }, 575 | { 576 | "attributes": { 577 | "class": [ 578 | "button", 579 | "radius", 580 | "small" 581 | ], 582 | "href": "/register/" 583 | }, 584 | "content": "signup today", 585 | "name": "a" 586 | }, 587 | { 588 | "attributes": { 589 | "class": [ 590 | "grey" 591 | ] 592 | }, 593 | "content": null, 594 | "name": "hr" 595 | }, 596 | { 597 | "attributes": { 598 | "aria-hidden": "true", 599 | "class": [ 600 | "fa", 601 | "fa-globe", 602 | "icon-64" 603 | ] 604 | }, 605 | "content": null, 606 | "name": "i" 607 | }, 608 | { 609 | "attributes": null, 610 | "content": "JSON API Stock Data", 611 | "name": "h5" 612 | }, 613 | { 614 | "attributes": null, 615 | "content": "Stock Data offers a simple API for stock market data. The API delivers end-of-day prices, open, high, low, close, volume, adjusted close, and more.", 616 | "name": "p" 617 | }, 618 | { 619 | "attributes": { 620 | "class": [ 621 | "grey" 622 | ] 623 | }, 624 | "content": null, 625 | "name": "hr" 626 | }, 627 | { 628 | "attributes": { 629 | "aria-hidden": "true", 630 | "class": [ 631 | "fa", 632 | "fa-file-text", 633 | "icon-64" 634 | ] 635 | }, 636 | "content": null, 637 | "name": "i" 638 | }, 639 | { 640 | "attributes": null, 641 | "content": "Full Documentation", 642 | "name": "h5" 643 | }, 644 | { 645 | "attributes": null, 646 | "content": "We have a huge amount of stock data. This data is divided into multiple databases, each covering a different subject. Premium databases are of higher quality, and more comprehensive.", 647 | "name": "p" 648 | }, 649 | { 650 | "attributes": { 651 | "class": [ 652 | "grey" 653 | ] 654 | }, 655 | "content": null, 656 | "name": "hr" 657 | }, 658 | { 659 | "attributes": { 660 | "aria-hidden": "true", 661 | "class": [ 662 | "fa", 663 | "fa-line-chart", 664 | "icon-64" 665 | ] 666 | }, 667 | "content": null, 668 | "name": "i" 669 | }, 670 | { 671 | "attributes": null, 672 | "content": "50+ Technical Indicators", 673 | "name": "h5" 674 | }, 675 | { 676 | "attributes": null, 677 | "content": "Over 50 of the best technical indicators including RSI, Full Stochastics, and MACD that can be used as a basis for trading, as they can form buy-and-sell signals.", 678 | "name": "p" 679 | }, 680 | { 681 | "attributes": { 682 | "class": [ 683 | "grey" 684 | ] 685 | }, 686 | "content": null, 687 | "name": "hr" 688 | }, 689 | { 690 | "attributes": { 691 | "aria-hidden": "true", 692 | "class": [ 693 | "fa", 694 | "fa-server", 695 | "icon-64" 696 | ] 697 | }, 698 | "content": null, 699 | "name": "i" 700 | }, 701 | { 702 | "attributes": null, 703 | "content": "Data for 6,500 Companies", 704 | "name": "h5" 705 | }, 706 | { 707 | "attributes": null, 708 | "content": "Get access to over 6,000 of the worlds most popular companies from all major exchanges including NASDAQ, NYSE, and AMEX.", 709 | "name": "p" 710 | }, 711 | { 712 | "attributes": { 713 | "class": [ 714 | "dividerimg" 715 | ] 716 | }, 717 | "content": null, 718 | "name": "div" 719 | }, 720 | { 721 | "attributes": { 722 | "class": [ 723 | "grey" 724 | ] 725 | }, 726 | "content": null, 727 | "name": "hr" 728 | }, 729 | { 730 | "attributes": { 731 | "class": [ 732 | "colored" 733 | ] 734 | }, 735 | "content": "What our customers have to say", 736 | "name": "h4" 737 | }, 738 | { 739 | "attributes": { 740 | "href": "#testimonial1" 741 | }, 742 | "content": "1", 743 | "name": "a" 744 | }, 745 | { 746 | "attributes": { 747 | "href": "#testimonial2" 748 | }, 749 | "content": "2", 750 | "name": "a" 751 | }, 752 | { 753 | "attributes": { 754 | "href": "#testimonial3" 755 | }, 756 | "content": "3", 757 | "name": "a" 758 | }, 759 | { 760 | "attributes": null, 761 | "content": "\"It's been a lifesaver having a reliable stock API, in the cloud, online that's accessible. It has helped us stay organized and efficiently work on the projects we need to instead of worrying about data collection.\"", 762 | "name": "cite" 763 | }, 764 | { 765 | "attributes": null, 766 | "content": "\"I absolutely love the documentation and ease of use. The API performance is amazing as well. It's also great seeing more technical indicators added every day.\"", 767 | "name": "cite" 768 | }, 769 | { 770 | "attributes": null, 771 | "content": "\"Stock Data API is easy to use and the technical indicators are fantastic. Our company has benefited greatly having access to a reliable data source.\"", 772 | "name": "cite" 773 | }, 774 | { 775 | "attributes": { 776 | "class": [ 777 | "grey" 778 | ] 779 | }, 780 | "content": null, 781 | "name": "hr" 782 | }, 783 | { 784 | "attributes": { 785 | "class": [ 786 | "colored" 787 | ] 788 | }, 789 | "content": "Why choose Stock Data API?", 790 | "name": "h4" 791 | }, 792 | { 793 | "attributes": { 794 | "class": [ 795 | "margintop" 796 | ] 797 | }, 798 | "content": "Best-in-class reliability, performance and value", 799 | "name": "h5" 800 | }, 801 | { 802 | "attributes": null, 803 | "content": "Our data is hosted on multiple high performance servers and optimized for the best performance and reliability.", 804 | "name": "p" 805 | }, 806 | { 807 | "attributes": { 808 | "class": [ 809 | "margintop" 810 | ] 811 | }, 812 | "content": "Speed up application development", 813 | "name": "h5" 814 | }, 815 | { 816 | "attributes": null, 817 | "content": "Stock Data API manages all technical computations without you needing to write your own complex algorithms.", 818 | "name": "p" 819 | }, 820 | { 821 | "attributes": { 822 | "class": [ 823 | "margintop" 824 | ] 825 | }, 826 | "content": "Accessible stock data from anywhere", 827 | "name": "h5" 828 | }, 829 | { 830 | "attributes": null, 831 | "content": "Developers can speed up the application development process by easily utilizing our API instead of resource intensive database storage. With JSON, you can access our data from any device, anywhere in the world.", 832 | "name": "p" 833 | }, 834 | { 835 | "attributes": { 836 | "class": [ 837 | "button", 838 | "radius", 839 | "tiny", 840 | "right" 841 | ], 842 | "href": "/features/" 843 | }, 844 | "content": "read more", 845 | "name": "a" 846 | }, 847 | { 848 | "attributes": { 849 | "class": [ 850 | "item" 851 | ] 852 | }, 853 | "content": null, 854 | "name": "div" 855 | }, 856 | { 857 | "attributes": { 858 | "src": "/static/website/images/clients/1.png", 859 | "alt": "Stock Data API" 860 | }, 861 | "content": null, 862 | "name": "img" 863 | }, 864 | { 865 | "attributes": { 866 | "class": [ 867 | "item" 868 | ] 869 | }, 870 | "content": null, 871 | "name": "div" 872 | }, 873 | { 874 | "attributes": { 875 | "src": "/static/website/images/clients/2.png", 876 | "alt": "Stock Data API" 877 | }, 878 | "content": null, 879 | "name": "img" 880 | }, 881 | { 882 | "attributes": { 883 | "class": [ 884 | "item" 885 | ] 886 | }, 887 | "content": null, 888 | "name": "div" 889 | }, 890 | { 891 | "attributes": { 892 | "src": "/static/website/images/clients/3.png", 893 | "alt": "Stock Data API" 894 | }, 895 | "content": null, 896 | "name": "img" 897 | }, 898 | { 899 | "attributes": { 900 | "class": [ 901 | "item" 902 | ] 903 | }, 904 | "content": null, 905 | "name": "div" 906 | }, 907 | { 908 | "attributes": { 909 | "src": "/static/website/images/clients/4.png", 910 | "alt": "Stock Data API" 911 | }, 912 | "content": null, 913 | "name": "img" 914 | }, 915 | { 916 | "attributes": { 917 | "class": [ 918 | "item" 919 | ] 920 | }, 921 | "content": null, 922 | "name": "div" 923 | }, 924 | { 925 | "attributes": { 926 | "src": "/static/website/images/clients/5.png", 927 | "alt": "Stock Data API" 928 | }, 929 | "content": null, 930 | "name": "img" 931 | }, 932 | { 933 | "attributes": { 934 | "class": [ 935 | "item" 936 | ] 937 | }, 938 | "content": null, 939 | "name": "div" 940 | }, 941 | { 942 | "attributes": { 943 | "src": "/static/website/images/clients/6.png", 944 | "alt": "Stock Data API" 945 | }, 946 | "content": null, 947 | "name": "img" 948 | }, 949 | { 950 | "attributes": { 951 | "class": [ 952 | "item" 953 | ] 954 | }, 955 | "content": null, 956 | "name": "div" 957 | }, 958 | { 959 | "attributes": { 960 | "src": "/static/website/images/clients/7.png", 961 | "alt": "Stock Data API" 962 | }, 963 | "content": null, 964 | "name": "img" 965 | }, 966 | { 967 | "attributes": { 968 | "class": [ 969 | "item" 970 | ] 971 | }, 972 | "content": null, 973 | "name": "div" 974 | }, 975 | { 976 | "attributes": { 977 | "src": "/static/website/images/clients/8.png", 978 | "alt": "Stock Data API" 979 | }, 980 | "content": null, 981 | "name": "img" 982 | }, 983 | { 984 | "attributes": { 985 | "class": [ 986 | "item" 987 | ] 988 | }, 989 | "content": null, 990 | "name": "div" 991 | }, 992 | { 993 | "attributes": { 994 | "src": "/static/website/images/clients/9.png", 995 | "alt": "Stock Data API" 996 | }, 997 | "content": null, 998 | "name": "img" 999 | }, 1000 | { 1001 | "attributes": { 1002 | "class": [ 1003 | "item" 1004 | ] 1005 | }, 1006 | "content": null, 1007 | "name": "div" 1008 | }, 1009 | { 1010 | "attributes": { 1011 | "src": "/static/website/images/clients/1.png", 1012 | "alt": "Stock Data API" 1013 | }, 1014 | "content": null, 1015 | "name": "img" 1016 | }, 1017 | { 1018 | "attributes": { 1019 | "class": [ 1020 | "item" 1021 | ] 1022 | }, 1023 | "content": null, 1024 | "name": "div" 1025 | }, 1026 | { 1027 | "attributes": { 1028 | "src": "/static/website/images/clients/2.png", 1029 | "alt": "Stock Data API" 1030 | }, 1031 | "content": null, 1032 | "name": "img" 1033 | }, 1034 | { 1035 | "attributes": { 1036 | "class": [ 1037 | "item" 1038 | ] 1039 | }, 1040 | "content": null, 1041 | "name": "div" 1042 | }, 1043 | { 1044 | "attributes": { 1045 | "src": "/static/website/images/clients/3.png", 1046 | "alt": "Stock Data API" 1047 | }, 1048 | "content": null, 1049 | "name": "img" 1050 | }, 1051 | { 1052 | "attributes": { 1053 | "class": [ 1054 | "item" 1055 | ] 1056 | }, 1057 | "content": null, 1058 | "name": "div" 1059 | }, 1060 | { 1061 | "attributes": { 1062 | "src": "/static/website/images/clients/4.png", 1063 | "alt": "Stock Data API" 1064 | }, 1065 | "content": null, 1066 | "name": "img" 1067 | }, 1068 | { 1069 | "attributes": { 1070 | "class": [ 1071 | "item" 1072 | ] 1073 | }, 1074 | "content": null, 1075 | "name": "div" 1076 | }, 1077 | { 1078 | "attributes": { 1079 | "src": "/static/website/images/clients/5.png", 1080 | "alt": "Stock Data API" 1081 | }, 1082 | "content": null, 1083 | "name": "img" 1084 | }, 1085 | { 1086 | "attributes": { 1087 | "class": [ 1088 | "item" 1089 | ] 1090 | }, 1091 | "content": null, 1092 | "name": "div" 1093 | }, 1094 | { 1095 | "attributes": { 1096 | "src": "/static/website/images/clients/6.png", 1097 | "alt": "Stock Data API" 1098 | }, 1099 | "content": null, 1100 | "name": "img" 1101 | }, 1102 | { 1103 | "attributes": { 1104 | "class": [ 1105 | "item" 1106 | ] 1107 | }, 1108 | "content": null, 1109 | "name": "div" 1110 | }, 1111 | { 1112 | "attributes": { 1113 | "src": "/static/website/images/clients/7.png", 1114 | "alt": "Stock Data API" 1115 | }, 1116 | "content": null, 1117 | "name": "img" 1118 | }, 1119 | { 1120 | "attributes": { 1121 | "class": [ 1122 | "item" 1123 | ] 1124 | }, 1125 | "content": null, 1126 | "name": "div" 1127 | }, 1128 | { 1129 | "attributes": { 1130 | "src": "/static/website/images/clients/8.png", 1131 | "alt": "Stock Data API" 1132 | }, 1133 | "content": null, 1134 | "name": "img" 1135 | }, 1136 | { 1137 | "attributes": { 1138 | "class": [ 1139 | "item" 1140 | ] 1141 | }, 1142 | "content": null, 1143 | "name": "div" 1144 | }, 1145 | { 1146 | "attributes": { 1147 | "src": "/static/website/images/clients/9.png", 1148 | "alt": "Stock Data API" 1149 | }, 1150 | "content": null, 1151 | "name": "img" 1152 | }, 1153 | { 1154 | "attributes": null, 1155 | "content": "Support", 1156 | "name": "h4" 1157 | }, 1158 | { 1159 | "attributes": { 1160 | "class": [ 1161 | "black" 1162 | ] 1163 | }, 1164 | "content": null, 1165 | "name": "hr" 1166 | }, 1167 | { 1168 | "attributes": { 1169 | "href": "/documentation/" 1170 | }, 1171 | "content": "API Documentation", 1172 | "name": "a" 1173 | }, 1174 | { 1175 | "attributes": { 1176 | "href": "/blog/" 1177 | }, 1178 | "content": "Blog", 1179 | "name": "a" 1180 | }, 1181 | { 1182 | "attributes": { 1183 | "href": "/contact/" 1184 | }, 1185 | "content": "Contact Us", 1186 | "name": "a" 1187 | }, 1188 | { 1189 | "attributes": { 1190 | "target": "_blank", 1191 | "href": "https://github.com/buckyroberts/python-Stock-Data" 1192 | }, 1193 | "content": "Python Wrapper", 1194 | "name": "a" 1195 | }, 1196 | { 1197 | "attributes": null, 1198 | "content": "Social Media", 1199 | "name": "h4" 1200 | }, 1201 | { 1202 | "attributes": { 1203 | "class": [ 1204 | "black" 1205 | ] 1206 | }, 1207 | "content": null, 1208 | "name": "hr" 1209 | }, 1210 | { 1211 | "attributes": { 1212 | "href": "https://www.facebook.com/Stock-Data-API-613005355529673/" 1213 | }, 1214 | "content": "Facebook", 1215 | "name": "a" 1216 | }, 1217 | { 1218 | "attributes": { 1219 | "href": "https://twitter.com/StockMarketAPI" 1220 | }, 1221 | "content": "Twitter", 1222 | "name": "a" 1223 | }, 1224 | { 1225 | "attributes": { 1226 | "href": "http://stockdataapi.tumblr.com/" 1227 | }, 1228 | "content": "Tumblr", 1229 | "name": "a" 1230 | }, 1231 | { 1232 | "attributes": { 1233 | "href": "https://www.pinterest.com/stockdataapi/" 1234 | }, 1235 | "content": "Pinterest", 1236 | "name": "a" 1237 | }, 1238 | { 1239 | "attributes": null, 1240 | "content": "API Data Plans", 1241 | "name": "h4" 1242 | }, 1243 | { 1244 | "attributes": { 1245 | "class": [ 1246 | "black" 1247 | ] 1248 | }, 1249 | "content": null, 1250 | "name": "hr" 1251 | }, 1252 | { 1253 | "attributes": { 1254 | "href": "/purchase/" 1255 | }, 1256 | "content": "Beginner Plan", 1257 | "name": "a" 1258 | }, 1259 | { 1260 | "attributes": { 1261 | "href": "/purchase/" 1262 | }, 1263 | "content": "Professional Plan", 1264 | "name": "a" 1265 | }, 1266 | { 1267 | "attributes": { 1268 | "href": "/purchase/" 1269 | }, 1270 | "content": "Ultimate Plan", 1271 | "name": "a" 1272 | }, 1273 | { 1274 | "attributes": null, 1275 | "content": "Our Newsletter", 1276 | "name": "h4" 1277 | }, 1278 | { 1279 | "attributes": { 1280 | "class": [ 1281 | "black" 1282 | ] 1283 | }, 1284 | "content": null, 1285 | "name": "hr" 1286 | }, 1287 | { 1288 | "attributes": null, 1289 | "content": "Sign up for news (coming soon)", 1290 | "name": "label" 1291 | }, 1292 | { 1293 | "attributes": { 1294 | "class": [ 1295 | "prefix" 1296 | ] 1297 | }, 1298 | "content": "@", 1299 | "name": "span" 1300 | }, 1301 | { 1302 | "attributes": { 1303 | "type": "text", 1304 | "id": "email" 1305 | }, 1306 | "content": null, 1307 | "name": "input" 1308 | }, 1309 | { 1310 | "attributes": { 1311 | "class": [ 1312 | "button", 1313 | "radius", 1314 | "tiny", 1315 | "left", 1316 | "noborder" 1317 | ], 1318 | "href": "#" 1319 | }, 1320 | "content": "subscribe", 1321 | "name": "a" 1322 | }, 1323 | { 1324 | "attributes": { 1325 | "class": [ 1326 | "black" 1327 | ] 1328 | }, 1329 | "content": null, 1330 | "name": "hr" 1331 | }, 1332 | { 1333 | "attributes": { 1334 | "href": "https://twitter.com/StockMarketAPI" 1335 | }, 1336 | "content": null, 1337 | "name": "a" 1338 | }, 1339 | { 1340 | "attributes": { 1341 | "aria-hidden": "true", 1342 | "class": [ 1343 | "fa", 1344 | "fa-twitter" 1345 | ] 1346 | }, 1347 | "content": null, 1348 | "name": "i" 1349 | }, 1350 | { 1351 | "attributes": { 1352 | "href": "https://www.facebook.com/Stock-Data-API-613005355529673/" 1353 | }, 1354 | "content": null, 1355 | "name": "a" 1356 | }, 1357 | { 1358 | "attributes": { 1359 | "aria-hidden": "true", 1360 | "class": [ 1361 | "fa", 1362 | "fa-facebook" 1363 | ] 1364 | }, 1365 | "content": null, 1366 | "name": "i" 1367 | }, 1368 | { 1369 | "attributes": { 1370 | "href": "https://www.pinterest.com/stockdataapi/" 1371 | }, 1372 | "content": null, 1373 | "name": "a" 1374 | }, 1375 | { 1376 | "attributes": { 1377 | "aria-hidden": "true", 1378 | "class": [ 1379 | "fa", 1380 | "fa-pinterest" 1381 | ] 1382 | }, 1383 | "content": null, 1384 | "name": "i" 1385 | }, 1386 | { 1387 | "attributes": { 1388 | "href": "https://www.reddit.com/r/stock_data/" 1389 | }, 1390 | "content": null, 1391 | "name": "a" 1392 | }, 1393 | { 1394 | "attributes": { 1395 | "aria-hidden": "true", 1396 | "class": [ 1397 | "fa", 1398 | "fa-reddit-alien" 1399 | ] 1400 | }, 1401 | "content": null, 1402 | "name": "i" 1403 | }, 1404 | { 1405 | "attributes": { 1406 | "href": "http://stockdataapi.tumblr.com/" 1407 | }, 1408 | "content": null, 1409 | "name": "a" 1410 | }, 1411 | { 1412 | "attributes": { 1413 | "aria-hidden": "true", 1414 | "class": [ 1415 | "fa", 1416 | "fa-tumblr" 1417 | ] 1418 | }, 1419 | "content": null, 1420 | "name": "i" 1421 | }, 1422 | { 1423 | "attributes": { 1424 | "href": "https://plus.google.com/+BuckyRoberts" 1425 | }, 1426 | "content": null, 1427 | "name": "a" 1428 | }, 1429 | { 1430 | "attributes": { 1431 | "aria-hidden": "true", 1432 | "class": [ 1433 | "fa", 1434 | "fa-google-plus" 1435 | ] 1436 | }, 1437 | "content": null, 1438 | "name": "i" 1439 | }, 1440 | { 1441 | "attributes": { 1442 | "href": "/tos/" 1443 | }, 1444 | "content": "TERMS OF USE", 1445 | "name": "a" 1446 | }, 1447 | { 1448 | "attributes": { 1449 | "href": "/privacy/" 1450 | }, 1451 | "content": "PRIVACY POLICY", 1452 | "name": "a" 1453 | } 1454 | ], 1455 | "headers": { 1456 | "Vary": "Cookie,Accept-Encoding", 1457 | "Content-Type": "text/html; charset=utf-8", 1458 | "Expires": "Wed, 29 Jun 2016 20:27:00 GMT", 1459 | "X-Frame-Options": "SAMEORIGIN", 1460 | "Cache-Control": "max-age=2592000", 1461 | "Content-Length": "25004", 1462 | "Server": "Apache/2.4.18 (Ubuntu)", 1463 | "Connection": "close", 1464 | "Date": "Mon, 30 May 2016 20:27:00 GMT" 1465 | }, 1466 | "status": 200, 1467 | "url": "http://stock-data-api.com/" 1468 | } -------------------------------------------------------------------------------- /sample_data/2.json: -------------------------------------------------------------------------------- 1 | { 2 | "tags": [ 3 | { 4 | "attributes": { 5 | "charset": "utf-8" 6 | }, 7 | "content": null, 8 | "name": "meta" 9 | }, 10 | { 11 | "attributes": { 12 | "content": "IE=edge", 13 | "http-equiv": "X-UA-Compatible" 14 | }, 15 | "content": null, 16 | "name": "meta" 17 | }, 18 | { 19 | "attributes": { 20 | "content": "width=device-width, initial-scale=1", 21 | "name": "viewport" 22 | }, 23 | "content": null, 24 | "name": "meta" 25 | }, 26 | { 27 | "attributes": { 28 | "content": "This is the greatest website of all time.", 29 | "name": "description" 30 | }, 31 | "content": null, 32 | "name": "meta" 33 | }, 34 | { 35 | "attributes": null, 36 | "content": "Viper SEO", 37 | "name": "title" 38 | }, 39 | { 40 | "attributes": { 41 | "rel": [ 42 | "shortcut", 43 | "icon" 44 | ], 45 | "href": "/static/website/images/icons/favicon.ico" 46 | }, 47 | "content": null, 48 | "name": "link" 49 | }, 50 | { 51 | "attributes": { 52 | "type": "text/css", 53 | "rel": [ 54 | "stylesheet" 55 | ], 56 | "href": "https://fonts.googleapis.com/css?family=Roboto:400,300,100,500,700,900" 57 | }, 58 | "content": null, 59 | "name": "link" 60 | }, 61 | { 62 | "attributes": { 63 | "type": "text/css", 64 | "rel": [ 65 | "stylesheet" 66 | ], 67 | "href": "/static/website/css/icons/icomoon/styles.css" 68 | }, 69 | "content": null, 70 | "name": "link" 71 | }, 72 | { 73 | "attributes": { 74 | "type": "text/css", 75 | "rel": [ 76 | "stylesheet" 77 | ], 78 | "href": "/static/website/css/bootstrap.min.css" 79 | }, 80 | "content": null, 81 | "name": "link" 82 | }, 83 | { 84 | "attributes": { 85 | "type": "text/css", 86 | "rel": [ 87 | "stylesheet" 88 | ], 89 | "href": "/static/website/css/core.min.css" 90 | }, 91 | "content": null, 92 | "name": "link" 93 | }, 94 | { 95 | "attributes": { 96 | "type": "text/css", 97 | "rel": [ 98 | "stylesheet" 99 | ], 100 | "href": "/static/website/css/components.min.css" 101 | }, 102 | "content": null, 103 | "name": "link" 104 | }, 105 | { 106 | "attributes": { 107 | "type": "text/css", 108 | "rel": [ 109 | "stylesheet" 110 | ], 111 | "href": "/static/website/css/colors.min.css" 112 | }, 113 | "content": null, 114 | "name": "link" 115 | }, 116 | { 117 | "attributes": { 118 | "src": "/static/website/images/logo_light.png", 119 | "alt": "Viper SEO Logo" 120 | }, 121 | "content": null, 122 | "name": "img" 123 | }, 124 | { 125 | "attributes": { 126 | "data-target": "#navbar-mobile", 127 | "data-toggle": "collapse" 128 | }, 129 | "content": null, 130 | "name": "a" 131 | }, 132 | { 133 | "attributes": { 134 | "class": [ 135 | "icon-tree5" 136 | ] 137 | }, 138 | "content": null, 139 | "name": "i" 140 | }, 141 | { 142 | "attributes": { 143 | "class": [ 144 | "sidebar-mobile-main-toggle" 145 | ] 146 | }, 147 | "content": null, 148 | "name": "a" 149 | }, 150 | { 151 | "attributes": { 152 | "class": [ 153 | "icon-paragraph-justify3" 154 | ] 155 | }, 156 | "content": null, 157 | "name": "i" 158 | }, 159 | { 160 | "attributes": { 161 | "class": [ 162 | "sidebar-control", 163 | "sidebar-main-toggle", 164 | "hidden-xs" 165 | ] 166 | }, 167 | "content": null, 168 | "name": "a" 169 | }, 170 | { 171 | "attributes": { 172 | "class": [ 173 | "icon-paragraph-justify3" 174 | ] 175 | }, 176 | "content": null, 177 | "name": "i" 178 | }, 179 | { 180 | "attributes": { 181 | "class": [ 182 | "nav", 183 | "navbar-nav", 184 | "navbar-right" 185 | ] 186 | }, 187 | "content": "", 188 | "name": "ul" 189 | }, 190 | { 191 | "attributes": null, 192 | "content": "ACCOUNT", 193 | "name": "span" 194 | }, 195 | { 196 | "attributes": { 197 | "class": [ 198 | "icon-home4" 199 | ] 200 | }, 201 | "content": null, 202 | "name": "i" 203 | }, 204 | { 205 | "attributes": null, 206 | "content": "Home", 207 | "name": "span" 208 | }, 209 | { 210 | "attributes": { 211 | "class": [ 212 | "icon-rocket" 213 | ] 214 | }, 215 | "content": null, 216 | "name": "i" 217 | }, 218 | { 219 | "attributes": null, 220 | "content": "Plans & Pricing", 221 | "name": "span" 222 | }, 223 | { 224 | "attributes": { 225 | "class": [ 226 | "icon-users" 227 | ] 228 | }, 229 | "content": null, 230 | "name": "i" 231 | }, 232 | { 233 | "attributes": null, 234 | "content": "Login", 235 | "name": "span" 236 | }, 237 | { 238 | "attributes": { 239 | "class": [ 240 | "icon-select2" 241 | ] 242 | }, 243 | "content": null, 244 | "name": "i" 245 | }, 246 | { 247 | "attributes": null, 248 | "content": "Register", 249 | "name": "span" 250 | }, 251 | { 252 | "attributes": null, 253 | "content": "TOOLS", 254 | "name": "span" 255 | }, 256 | { 257 | "attributes": { 258 | "class": [ 259 | "icon-statistics" 260 | ] 261 | }, 262 | "content": null, 263 | "name": "i" 264 | }, 265 | { 266 | "attributes": null, 267 | "content": "Page Check", 268 | "name": "span" 269 | }, 270 | { 271 | "attributes": { 272 | "class": [ 273 | "icon-embed" 274 | ] 275 | }, 276 | "content": null, 277 | "name": "i" 278 | }, 279 | { 280 | "attributes": null, 281 | "content": "Sitemap Generator", 282 | "name": "span" 283 | }, 284 | { 285 | "attributes": { 286 | "class": [ 287 | "icon-stats-growth" 288 | ] 289 | }, 290 | "content": null, 291 | "name": "i" 292 | }, 293 | { 294 | "attributes": null, 295 | "content": "Website Analyzer", 296 | "name": "span" 297 | }, 298 | { 299 | "attributes": null, 300 | "content": "SUPPORT", 301 | "name": "span" 302 | }, 303 | { 304 | "attributes": { 305 | "class": [ 306 | "icon-pencil" 307 | ] 308 | }, 309 | "content": null, 310 | "name": "i" 311 | }, 312 | { 313 | "attributes": null, 314 | "content": "Blog", 315 | "name": "span" 316 | }, 317 | { 318 | "attributes": { 319 | "class": [ 320 | "icon-newspaper" 321 | ] 322 | }, 323 | "content": null, 324 | "name": "i" 325 | }, 326 | { 327 | "attributes": null, 328 | "content": "Articles", 329 | "name": "span" 330 | }, 331 | { 332 | "attributes": { 333 | "class": [ 334 | "icon-graduation" 335 | ] 336 | }, 337 | "content": null, 338 | "name": "i" 339 | }, 340 | { 341 | "attributes": null, 342 | "content": "Tutorials", 343 | "name": "span" 344 | }, 345 | { 346 | "attributes": { 347 | "class": [ 348 | "icon-home2", 349 | "position-left" 350 | ] 351 | }, 352 | "content": null, 353 | "name": "i" 354 | }, 355 | { 356 | "attributes": { 357 | "class": [ 358 | "icon-statistics", 359 | "position-left" 360 | ] 361 | }, 362 | "content": null, 363 | "name": "i" 364 | }, 365 | { 366 | "attributes": { 367 | "class": [ 368 | "text-light", 369 | "text-muted" 370 | ] 371 | }, 372 | "content": "/5,000 pages", 373 | "name": "span" 374 | }, 375 | { 376 | "attributes": { 377 | "class": [ 378 | "icon-embed2", 379 | "position-left" 380 | ] 381 | }, 382 | "content": null, 383 | "name": "i" 384 | }, 385 | { 386 | "attributes": { 387 | "class": [ 388 | "text-light", 389 | "text-muted" 390 | ] 391 | }, 392 | "content": "/100 sitemaps", 393 | "name": "span" 394 | }, 395 | { 396 | "attributes": { 397 | "class": [ 398 | "icon-meter-fast", 399 | "position-left" 400 | ] 401 | }, 402 | "content": null, 403 | "name": "i" 404 | }, 405 | { 406 | "attributes": { 407 | "class": [ 408 | "text-light", 409 | "text-muted" 410 | ] 411 | }, 412 | "content": "/100 analyses", 413 | "name": "span" 414 | }, 415 | { 416 | "attributes": { 417 | "class": [ 418 | "display-block" 419 | ] 420 | }, 421 | "content": "Viper SEO is the worlds most advanced search engine optimization suite.", 422 | "name": "small" 423 | }, 424 | { 425 | "attributes": { 426 | "src": "/static/website/images/homepage/page-check-demo.png", 427 | "alt": "Page Optimizer" 428 | }, 429 | "content": null, 430 | "name": "img" 431 | }, 432 | { 433 | "attributes": { 434 | "href": "/page-check/", 435 | "class": [ 436 | "btn", 437 | "border-white", 438 | "text-white", 439 | "btn-flat", 440 | "btn-icon", 441 | "btn-rounded" 442 | ], 443 | "data-popup": "lightbox" 444 | }, 445 | "content": null, 446 | "name": "a" 447 | }, 448 | { 449 | "attributes": { 450 | "class": [ 451 | "icon-new-tab" 452 | ] 453 | }, 454 | "content": null, 455 | "name": "i" 456 | }, 457 | { 458 | "attributes": { 459 | "href": "/page-check/", 460 | "class": [ 461 | "text-default" 462 | ] 463 | }, 464 | "content": "Page Check", 465 | "name": "a" 466 | }, 467 | { 468 | "attributes": { 469 | "href": "/page-check/", 470 | "class": [ 471 | "text-muted" 472 | ] 473 | }, 474 | "content": null, 475 | "name": "a" 476 | }, 477 | { 478 | "attributes": { 479 | "class": [ 480 | "icon-stats-growth", 481 | "pull-right" 482 | ] 483 | }, 484 | "content": null, 485 | "name": "i" 486 | }, 487 | { 488 | "attributes": { 489 | "src": "/static/website/images/homepage/sitemap-generator-demo.png", 490 | "alt": "Sitemap Generator" 491 | }, 492 | "content": null, 493 | "name": "img" 494 | }, 495 | { 496 | "attributes": { 497 | "href": "/sitemap-generator/", 498 | "class": [ 499 | "btn", 500 | "border-white", 501 | "text-white", 502 | "btn-flat", 503 | "btn-icon", 504 | "btn-rounded" 505 | ], 506 | "data-popup": "lightbox" 507 | }, 508 | "content": null, 509 | "name": "a" 510 | }, 511 | { 512 | "attributes": { 513 | "class": [ 514 | "icon-new-tab" 515 | ] 516 | }, 517 | "content": null, 518 | "name": "i" 519 | }, 520 | { 521 | "attributes": { 522 | "href": "/sitemap-generator/", 523 | "class": [ 524 | "text-default" 525 | ] 526 | }, 527 | "content": "Sitemap Generator", 528 | "name": "a" 529 | }, 530 | { 531 | "attributes": { 532 | "href": "/sitemap-generator/", 533 | "class": [ 534 | "text-muted" 535 | ] 536 | }, 537 | "content": null, 538 | "name": "a" 539 | }, 540 | { 541 | "attributes": { 542 | "class": [ 543 | "icon-embed", 544 | "pull-right" 545 | ] 546 | }, 547 | "content": null, 548 | "name": "i" 549 | }, 550 | { 551 | "attributes": { 552 | "src": "/static/website/images/homepage/4.png", 553 | "alt": "Website Analyzer" 554 | }, 555 | "content": null, 556 | "name": "img" 557 | }, 558 | { 559 | "attributes": { 560 | "href": "/website-analyzer/", 561 | "class": [ 562 | "btn", 563 | "border-white", 564 | "text-white", 565 | "btn-flat", 566 | "btn-icon", 567 | "btn-rounded" 568 | ], 569 | "data-popup": "lightbox" 570 | }, 571 | "content": null, 572 | "name": "a" 573 | }, 574 | { 575 | "attributes": { 576 | "class": [ 577 | "icon-new-tab" 578 | ] 579 | }, 580 | "content": null, 581 | "name": "i" 582 | }, 583 | { 584 | "attributes": { 585 | "href": "/website-analyzer/", 586 | "class": [ 587 | "text-default" 588 | ] 589 | }, 590 | "content": "Website Analyzer", 591 | "name": "a" 592 | }, 593 | { 594 | "attributes": { 595 | "href": "/website-analyzer/", 596 | "class": [ 597 | "text-muted" 598 | ] 599 | }, 600 | "content": null, 601 | "name": "a" 602 | }, 603 | { 604 | "attributes": { 605 | "class": [ 606 | "icon-earth", 607 | "pull-right" 608 | ] 609 | }, 610 | "content": null, 611 | "name": "i" 612 | }, 613 | { 614 | "attributes": { 615 | "class": [ 616 | "panel-title" 617 | ] 618 | }, 619 | "content": "Latest posts", 620 | "name": "h6" 621 | }, 622 | { 623 | "attributes": null, 624 | "content": null, 625 | "name": "li" 626 | }, 627 | { 628 | "attributes": { 629 | "data-action": "collapse" 630 | }, 631 | "content": null, 632 | "name": "a" 633 | }, 634 | { 635 | "attributes": null, 636 | "content": null, 637 | "name": "li" 638 | }, 639 | { 640 | "attributes": { 641 | "data-action": "close" 642 | }, 643 | "content": null, 644 | "name": "a" 645 | }, 646 | { 647 | "attributes": { 648 | "class": [ 649 | "heading-elements-toggle" 650 | ] 651 | }, 652 | "content": null, 653 | "name": "a" 654 | }, 655 | { 656 | "attributes": { 657 | "class": [ 658 | "icon-more" 659 | ] 660 | }, 661 | "content": null, 662 | "name": "i" 663 | }, 664 | { 665 | "attributes": { 666 | "class": [ 667 | "img-responsive", 668 | "img-rounded", 669 | "media-preview" 670 | ], 671 | "src": "/static/website/images/homepage/5.png" 672 | }, 673 | "content": null, 674 | "name": "img" 675 | }, 676 | { 677 | "attributes": { 678 | "class": [ 679 | "zoom-image" 680 | ] 681 | }, 682 | "content": null, 683 | "name": "span" 684 | }, 685 | { 686 | "attributes": { 687 | "class": [ 688 | "icon-arrow-small-up" 689 | ] 690 | }, 691 | "content": null, 692 | "name": "i" 693 | }, 694 | { 695 | "attributes": { 696 | "href": "#" 697 | }, 698 | "content": "First Posts Title", 699 | "name": "a" 700 | }, 701 | { 702 | "attributes": { 703 | "class": [ 704 | "icon-pencil", 705 | "position-left" 706 | ] 707 | }, 708 | "content": null, 709 | "name": "i" 710 | }, 711 | { 712 | "attributes": null, 713 | "content": "April 25, 2016", 714 | "name": "li" 715 | }, 716 | { 717 | "attributes": { 718 | "class": [ 719 | "img-responsive", 720 | "img-rounded", 721 | "media-preview" 722 | ], 723 | "src": "/static/website/images/homepage/6.png" 724 | }, 725 | "content": null, 726 | "name": "img" 727 | }, 728 | { 729 | "attributes": { 730 | "class": [ 731 | "zoom-image" 732 | ] 733 | }, 734 | "content": null, 735 | "name": "span" 736 | }, 737 | { 738 | "attributes": { 739 | "class": [ 740 | "icon-arrow-small-up" 741 | ] 742 | }, 743 | "content": null, 744 | "name": "i" 745 | }, 746 | { 747 | "attributes": { 748 | "href": "#" 749 | }, 750 | "content": "Second Posts Title", 751 | "name": "a" 752 | }, 753 | { 754 | "attributes": { 755 | "class": [ 756 | "icon-book3", 757 | "position-left" 758 | ] 759 | }, 760 | "content": null, 761 | "name": "i" 762 | }, 763 | { 764 | "attributes": null, 765 | "content": "April 28, 2016", 766 | "name": "li" 767 | }, 768 | { 769 | "attributes": { 770 | "class": [ 771 | "img-responsive", 772 | "img-rounded", 773 | "media-preview" 774 | ], 775 | "src": "/static/website/images/homepage/8.png" 776 | }, 777 | "content": null, 778 | "name": "img" 779 | }, 780 | { 781 | "attributes": { 782 | "class": [ 783 | "zoom-image" 784 | ] 785 | }, 786 | "content": null, 787 | "name": "span" 788 | }, 789 | { 790 | "attributes": { 791 | "class": [ 792 | "icon-arrow-small-up" 793 | ] 794 | }, 795 | "content": null, 796 | "name": "i" 797 | }, 798 | { 799 | "attributes": { 800 | "href": "#" 801 | }, 802 | "content": "Third Posts Title", 803 | "name": "a" 804 | }, 805 | { 806 | "attributes": { 807 | "class": [ 808 | "icon-book3", 809 | "position-left" 810 | ] 811 | }, 812 | "content": null, 813 | "name": "i" 814 | }, 815 | { 816 | "attributes": null, 817 | "content": "April 25, 2016", 818 | "name": "li" 819 | }, 820 | { 821 | "attributes": { 822 | "class": [ 823 | "img-responsive", 824 | "img-rounded", 825 | "media-preview" 826 | ], 827 | "src": "/static/website/images/homepage/2.png" 828 | }, 829 | "content": null, 830 | "name": "img" 831 | }, 832 | { 833 | "attributes": { 834 | "class": [ 835 | "zoom-image" 836 | ] 837 | }, 838 | "content": null, 839 | "name": "span" 840 | }, 841 | { 842 | "attributes": { 843 | "class": [ 844 | "icon-arrow-small-up" 845 | ] 846 | }, 847 | "content": null, 848 | "name": "i" 849 | }, 850 | { 851 | "attributes": { 852 | "href": "#" 853 | }, 854 | "content": "Fourth Posts Title", 855 | "name": "a" 856 | }, 857 | { 858 | "attributes": { 859 | "class": [ 860 | "icon-pencil", 861 | "position-left" 862 | ] 863 | }, 864 | "content": null, 865 | "name": "i" 866 | }, 867 | { 868 | "attributes": null, 869 | "content": "April 28, 2016", 870 | "name": "li" 871 | }, 872 | { 873 | "attributes": { 874 | "class": [ 875 | "icon-object", 876 | "border-warning-400", 877 | "text-warning" 878 | ] 879 | }, 880 | "content": null, 881 | "name": "div" 882 | }, 883 | { 884 | "attributes": { 885 | "class": [ 886 | "icon-lifebuoy" 887 | ] 888 | }, 889 | "content": null, 890 | "name": "i" 891 | }, 892 | { 893 | "attributes": { 894 | "class": [ 895 | "text-semibold" 896 | ] 897 | }, 898 | "content": "Support center", 899 | "name": "h5" 900 | }, 901 | { 902 | "attributes": { 903 | "class": [ 904 | "mb-20" 905 | ] 906 | }, 907 | "content": "Dear spryly growled much far jeepers vigilantly less and far hideous and some mannishly less jeepers less and and crud some mannishly less jeepers less and and some mannishly less jeepers less and and crud.", 908 | "name": "p" 909 | }, 910 | { 911 | "attributes": { 912 | "href": "#", 913 | "class": [ 914 | "btn", 915 | "bg-warning-400" 916 | ] 917 | }, 918 | "content": "Open a ticket", 919 | "name": "a" 920 | }, 921 | { 922 | "attributes": { 923 | "class": [ 924 | "icon-facebook2", 925 | "position-left" 926 | ] 927 | }, 928 | "content": null, 929 | "name": "i" 930 | }, 931 | { 932 | "attributes": { 933 | "class": [ 934 | "icon-twitter", 935 | "position-left" 936 | ] 937 | }, 938 | "content": null, 939 | "name": "i" 940 | }, 941 | { 942 | "attributes": { 943 | "class": [ 944 | "icon-reddit", 945 | "position-left" 946 | ] 947 | }, 948 | "content": null, 949 | "name": "i" 950 | }, 951 | { 952 | "attributes": { 953 | "class": [ 954 | "icon-tumblr", 955 | "position-left" 956 | ] 957 | }, 958 | "content": null, 959 | "name": "i" 960 | }, 961 | { 962 | "attributes": { 963 | "class": [ 964 | "icon-pinterest2", 965 | "position-left" 966 | ] 967 | }, 968 | "content": null, 969 | "name": "i" 970 | } 971 | ], 972 | "headers": { 973 | "Vary": "Cookie,Accept-Encoding", 974 | "X-Frame-Options": "SAMEORIGIN", 975 | "Content-Type": "text/html; charset=utf-8", 976 | "Transfer-Encoding": "chunked", 977 | "Server": "Apache/2.4.18 (Ubuntu)", 978 | "Connection": "close", 979 | "Date": "Mon, 30 May 2016 20:27:00 GMT" 980 | }, 981 | "status": 200, 982 | "url": "http://viper-seo.com/" 983 | } -------------------------------------------------------------------------------- /sample_data/3.json: -------------------------------------------------------------------------------- 1 | { 2 | "tags": [ 3 | { 4 | "attributes": { 5 | "charset": "UTF-8" 6 | }, 7 | "content": null, 8 | "name": "meta" 9 | }, 10 | { 11 | "attributes": { 12 | "content": "IE=edge", 13 | "http-equiv": "X-UA-Compatible" 14 | }, 15 | "content": null, 16 | "name": "meta" 17 | }, 18 | { 19 | "attributes": { 20 | "content": "width=device-width, initial-scale=1", 21 | "name": "viewport" 22 | }, 23 | "content": null, 24 | "name": "meta" 25 | }, 26 | { 27 | "attributes": { 28 | "content": "Welcome to thenewboston, the world's largest collection of free video tutorials on computer programming, web design, game development, and more.", 29 | "name": "description" 30 | }, 31 | "content": null, 32 | "name": "meta" 33 | }, 34 | { 35 | "attributes": null, 36 | "content": "thenewboston - Video Tutorials on Programming and More", 37 | "name": "title" 38 | }, 39 | { 40 | "attributes": { 41 | "type": "text/css", 42 | "rel": [ 43 | "stylesheet" 44 | ], 45 | "href": "//fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,400,600,700,300&subset=latin" 46 | }, 47 | "content": null, 48 | "name": "link" 49 | }, 50 | { 51 | "attributes": { 52 | "type": "text/css", 53 | "rel": [ 54 | "stylesheet" 55 | ], 56 | "href": "//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" 57 | }, 58 | "content": null, 59 | "name": "link" 60 | }, 61 | { 62 | "attributes": { 63 | "type": "text/css", 64 | "rel": [ 65 | "stylesheet" 66 | ], 67 | "href": "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" 68 | }, 69 | "content": null, 70 | "name": "link" 71 | }, 72 | { 73 | "attributes": { 74 | "type": "text/css", 75 | "rel": [ 76 | "stylesheet" 77 | ], 78 | "href": "/css/main.min.css" 79 | }, 80 | "content": null, 81 | "name": "link" 82 | }, 83 | { 84 | "attributes": { 85 | "type": "text/css", 86 | "rel": [ 87 | "stylesheet" 88 | ], 89 | "href": "/css/widgets.min.css" 90 | }, 91 | "content": null, 92 | "name": "link" 93 | }, 94 | { 95 | "attributes": { 96 | "type": "text/css", 97 | "rel": [ 98 | "stylesheet" 99 | ], 100 | "href": "/css/pages.min.css" 101 | }, 102 | "content": null, 103 | "name": "link" 104 | }, 105 | { 106 | "attributes": { 107 | "type": "text/css", 108 | "rel": [ 109 | "stylesheet" 110 | ], 111 | "href": "/css/themes.min.css" 112 | }, 113 | "content": null, 114 | "name": "link" 115 | }, 116 | { 117 | "attributes": { 118 | "class": [ 119 | "navbar-icon", 120 | "fa", 121 | "fa-bars", 122 | "icon" 123 | ] 124 | }, 125 | "content": null, 126 | "name": "i" 127 | }, 128 | { 129 | "attributes": { 130 | "alt": "thenewboston Logo", 131 | "src": "/images/logo.png" 132 | }, 133 | "content": null, 134 | "name": "img" 135 | }, 136 | { 137 | "attributes": { 138 | "class": [ 139 | "navbar-icon", 140 | "fa", 141 | "fa-bars" 142 | ] 143 | }, 144 | "content": null, 145 | "name": "i" 146 | }, 147 | { 148 | "attributes": { 149 | "class": [ 150 | "dropdown-icon", 151 | "fa", 152 | "fa-comment" 153 | ] 154 | }, 155 | "content": null, 156 | "name": "i" 157 | }, 158 | { 159 | "attributes": { 160 | "class": [ 161 | "dropdown-icon", 162 | "fa", 163 | "fa-youtube-play" 164 | ] 165 | }, 166 | "content": null, 167 | "name": "i" 168 | }, 169 | { 170 | "attributes": { 171 | "href": "https://thenewboston.com/videos_beauty.php" 172 | }, 173 | "content": "Beauty", 174 | "name": "a" 175 | }, 176 | { 177 | "attributes": { 178 | "href": "https://thenewboston.com/videos_business.php" 179 | }, 180 | "content": "Business", 181 | "name": "a" 182 | }, 183 | { 184 | "attributes": { 185 | "href": "https://thenewboston.com/videos.php" 186 | }, 187 | "content": "Computer Science", 188 | "name": "a" 189 | }, 190 | { 191 | "attributes": { 192 | "href": "https://thenewboston.com/videos_food.php" 193 | }, 194 | "content": "Cooking", 195 | "name": "a" 196 | }, 197 | { 198 | "attributes": { 199 | "href": "https://thenewboston.com/videos_health.php" 200 | }, 201 | "content": "Health & Medicine", 202 | "name": "a" 203 | }, 204 | { 205 | "attributes": { 206 | "href": "https://thenewboston.com/videos_humanities.php" 207 | }, 208 | "content": "Humanities", 209 | "name": "a" 210 | }, 211 | { 212 | "attributes": { 213 | "href": "https://thenewboston.com/videos_math.php" 214 | }, 215 | "content": "Math", 216 | "name": "a" 217 | }, 218 | { 219 | "attributes": { 220 | "href": "https://thenewboston.com/videos_science.php" 221 | }, 222 | "content": "Science", 223 | "name": "a" 224 | }, 225 | { 226 | "attributes": { 227 | "href": "https://thenewboston.com/videos_social.php" 228 | }, 229 | "content": "Social Sciences", 230 | "name": "a" 231 | }, 232 | { 233 | "attributes": { 234 | "type": "text", 235 | "placeholder": "Email", 236 | "v-require": "1", 237 | "name": "email", 238 | "id": "username_id", 239 | "v-email": "1", 240 | "class": [ 241 | "form-control", 242 | "require-validation" 243 | ] 244 | }, 245 | "content": null, 246 | "name": "input" 247 | }, 248 | { 249 | "attributes": { 250 | "type": "password", 251 | "placeholder": "Password", 252 | "v-require": "1", 253 | "name": "password", 254 | "id": "password_id", 255 | "v-minlength": "6", 256 | "class": [ 257 | "form-control", 258 | "require-validation" 259 | ] 260 | }, 261 | "content": null, 262 | "name": "input" 263 | }, 264 | { 265 | "attributes": { 266 | "value": "Login", 267 | "class": [ 268 | "btn", 269 | "btn-primary" 270 | ], 271 | "name": "signin_submit", 272 | "type": "submit" 273 | }, 274 | "content": null, 275 | "name": "input" 276 | }, 277 | { 278 | "attributes": { 279 | "value": "login", 280 | "name": "action", 281 | "type": "hidden" 282 | }, 283 | "content": null, 284 | "name": "input" 285 | }, 286 | { 287 | "attributes": { 288 | "value": "1", 289 | "name": "f8d845f13a68f4f4d0fd10628112b364", 290 | "type": "hidden" 291 | }, 292 | "content": null, 293 | "name": "input" 294 | }, 295 | { 296 | "attributes": { 297 | "class": [ 298 | "dropdown-icon", 299 | "fa", 300 | "fa-sign-in" 301 | ] 302 | }, 303 | "content": null, 304 | "name": "i" 305 | }, 306 | { 307 | "attributes": { 308 | "class": [ 309 | "menu-icon", 310 | "fa", 311 | "fa-heart" 312 | ] 313 | }, 314 | "content": null, 315 | "name": "i" 316 | }, 317 | { 318 | "attributes": { 319 | "class": [ 320 | "mm-text" 321 | ] 322 | }, 323 | "content": "Beauty", 324 | "name": "span" 325 | }, 326 | { 327 | "attributes": { 328 | "class": [ 329 | "menu-icon", 330 | "fa", 331 | "fa-line-chart" 332 | ] 333 | }, 334 | "content": null, 335 | "name": "i" 336 | }, 337 | { 338 | "attributes": { 339 | "class": [ 340 | "mm-text" 341 | ] 342 | }, 343 | "content": "Business", 344 | "name": "span" 345 | }, 346 | { 347 | "attributes": { 348 | "class": [ 349 | "menu-icon", 350 | "fa", 351 | "fa-laptop" 352 | ] 353 | }, 354 | "content": null, 355 | "name": "i" 356 | }, 357 | { 358 | "attributes": { 359 | "class": [ 360 | "mm-text" 361 | ] 362 | }, 363 | "content": "Computer Science", 364 | "name": "span" 365 | }, 366 | { 367 | "attributes": { 368 | "class": [ 369 | "menu-icon", 370 | "fa", 371 | "fa-coffee" 372 | ] 373 | }, 374 | "content": null, 375 | "name": "i" 376 | }, 377 | { 378 | "attributes": { 379 | "class": [ 380 | "mm-text" 381 | ] 382 | }, 383 | "content": "Cooking", 384 | "name": "span" 385 | }, 386 | { 387 | "attributes": { 388 | "class": [ 389 | "menu-icon", 390 | "fa", 391 | "fa-stethoscope" 392 | ] 393 | }, 394 | "content": null, 395 | "name": "i" 396 | }, 397 | { 398 | "attributes": { 399 | "class": [ 400 | "mm-text" 401 | ] 402 | }, 403 | "content": "Health & Medicine", 404 | "name": "span" 405 | }, 406 | { 407 | "attributes": { 408 | "class": [ 409 | "menu-icon", 410 | "fa", 411 | "fa-bank" 412 | ] 413 | }, 414 | "content": null, 415 | "name": "i" 416 | }, 417 | { 418 | "attributes": { 419 | "class": [ 420 | "mm-text" 421 | ] 422 | }, 423 | "content": "Humanities", 424 | "name": "span" 425 | }, 426 | { 427 | "attributes": { 428 | "class": [ 429 | "menu-icon", 430 | "fa", 431 | "fa-plus" 432 | ] 433 | }, 434 | "content": null, 435 | "name": "i" 436 | }, 437 | { 438 | "attributes": { 439 | "class": [ 440 | "mm-text" 441 | ] 442 | }, 443 | "content": "Math", 444 | "name": "span" 445 | }, 446 | { 447 | "attributes": { 448 | "class": [ 449 | "menu-icon", 450 | "fa", 451 | "fa-leaf" 452 | ] 453 | }, 454 | "content": null, 455 | "name": "i" 456 | }, 457 | { 458 | "attributes": { 459 | "class": [ 460 | "mm-text" 461 | ] 462 | }, 463 | "content": "Science", 464 | "name": "span" 465 | }, 466 | { 467 | "attributes": { 468 | "class": [ 469 | "menu-icon", 470 | "fa", 471 | "fa-graduation-cap" 472 | ] 473 | }, 474 | "content": null, 475 | "name": "i" 476 | }, 477 | { 478 | "attributes": { 479 | "class": [ 480 | "mm-text" 481 | ] 482 | }, 483 | "content": "Social Sciences", 484 | "name": "span" 485 | }, 486 | { 487 | "attributes": { 488 | "href": "https://thenewboston.com/register.php", 489 | "class": [ 490 | "btn", 491 | "btn-primary", 492 | "btn-block", 493 | "btn-outline", 494 | "dark" 495 | ] 496 | }, 497 | "content": "Create an Account", 498 | "name": "a" 499 | }, 500 | { 501 | "attributes": { 502 | "id": "main-menu-bg" 503 | }, 504 | "content": null, 505 | "name": "div" 506 | }, 507 | { 508 | "attributes": { 509 | "class": [ 510 | "margin-top5", 511 | "margin-bottom15", 512 | "featured-video-heading" 513 | ] 514 | }, 515 | "content": "Featured Tutorial - Android App Development for Beginners", 516 | "name": "h1" 517 | }, 518 | { 519 | "attributes": { 520 | "src": "//www.youtube.com/embed/QAbQgLGKd3Y?enablejsapi=1", 521 | "id": "youtube-player13", 522 | "class": [ 523 | "embed-responsive-item", 524 | "youtube-player" 525 | ], 526 | "data-code": "-u-j7uqU7sI", 527 | "data-token": "f8d845f13a68f4f4d0fd10628112b364" 528 | }, 529 | "content": "", 530 | "name": "iframe" 531 | }, 532 | { 533 | "attributes": null, 534 | "content": null, 535 | "name": "br" 536 | }, 537 | { 538 | "attributes": { 539 | "href": "https://www.thenewboston.com/videos.php?cat=278&video=27335" 540 | }, 541 | "content": "Watch Now", 542 | "name": "a" 543 | }, 544 | { 545 | "attributes": { 546 | "href": "https://www.thenewboston.com/forum/category.php?id=10" 547 | }, 548 | "content": "Visit Android Forum", 549 | "name": "a" 550 | }, 551 | { 552 | "attributes": { 553 | "class": [ 554 | "panel-title-icon", 555 | "fa", 556 | "fa-fire" 557 | ] 558 | }, 559 | "content": null, 560 | "name": "i" 561 | }, 562 | { 563 | "attributes": null, 564 | "content": "Brand New Courses", 565 | "name": "b" 566 | }, 567 | { 568 | "attributes": { 569 | "alt": "Java Programming", 570 | "class": [ 571 | "img", 572 | "video-thumbnail" 573 | ], 574 | "src": "/images/videos/java_beginners.png" 575 | }, 576 | "content": null, 577 | "name": "img" 578 | }, 579 | { 580 | "attributes": { 581 | "href": "https://thenewboston.com/videos.php?cat=31" 582 | }, 583 | "content": "Java - Beginners", 584 | "name": "a" 585 | }, 586 | { 587 | "attributes": { 588 | "href": "https://thenewboston.com/videos.php?cat=31" 589 | }, 590 | "content": "87 videos", 591 | "name": "a" 592 | }, 593 | { 594 | "attributes": { 595 | "alt": "C++ Programming", 596 | "class": [ 597 | "img", 598 | "video-thumbnail" 599 | ], 600 | "src": "/images/videos/cpp.png" 601 | }, 602 | "content": null, 603 | "name": "img" 604 | }, 605 | { 606 | "attributes": { 607 | "href": "https://thenewboston.com/videos.php?cat=16" 608 | }, 609 | "content": "C++", 610 | "name": "a" 611 | }, 612 | { 613 | "attributes": { 614 | "href": "https://thenewboston.com/videos.php?cat=16" 615 | }, 616 | "content": "73 videos", 617 | "name": "a" 618 | }, 619 | { 620 | "attributes": { 621 | "alt": "PHP Programming", 622 | "class": [ 623 | "img", 624 | "video-thumbnail" 625 | ], 626 | "src": "/images/videos/php.png" 627 | }, 628 | "content": null, 629 | "name": "img" 630 | }, 631 | { 632 | "attributes": { 633 | "href": "https://thenewboston.com/videos.php?cat=11" 634 | }, 635 | "content": "PHP", 636 | "name": "a" 637 | }, 638 | { 639 | "attributes": { 640 | "href": "https://thenewboston.com/videos.php?cat=11" 641 | }, 642 | "content": "200 videos", 643 | "name": "a" 644 | }, 645 | { 646 | "attributes": { 647 | "alt": "HTML5 Logo", 648 | "class": [ 649 | "img", 650 | "video-thumbnail" 651 | ], 652 | "src": "/images/videos/html5.png" 653 | }, 654 | "content": null, 655 | "name": "img" 656 | }, 657 | { 658 | "attributes": { 659 | "href": "https://thenewboston.com/videos.php?cat=43" 660 | }, 661 | "content": "HTML5 Web Design", 662 | "name": "a" 663 | }, 664 | { 665 | "attributes": { 666 | "href": "https://thenewboston.com/videos.php?cat=43" 667 | }, 668 | "content": "53 videos", 669 | "name": "a" 670 | }, 671 | { 672 | "attributes": { 673 | "alt": "JavaScript Programming", 674 | "class": [ 675 | "img", 676 | "video-thumbnail" 677 | ], 678 | "src": "/images/videos/javascript.png" 679 | }, 680 | "content": null, 681 | "name": "img" 682 | }, 683 | { 684 | "attributes": { 685 | "href": "https://thenewboston.com/videos.php?cat=10" 686 | }, 687 | "content": "JavaScript", 688 | "name": "a" 689 | }, 690 | { 691 | "attributes": { 692 | "href": "https://thenewboston.com/videos.php?cat=10" 693 | }, 694 | "content": "40 videos", 695 | "name": "a" 696 | }, 697 | { 698 | "attributes": { 699 | "class": [ 700 | "panel-title-icon", 701 | "fa", 702 | "fa-desktop" 703 | ] 704 | }, 705 | "content": null, 706 | "name": "i" 707 | }, 708 | { 709 | "attributes": { 710 | "class": [ 711 | "item-details" 712 | ] 713 | }, 714 | "content": "\u00b7 20 videos", 715 | "name": "span" 716 | }, 717 | { 718 | "attributes": { 719 | "class": [ 720 | "item-details" 721 | ] 722 | }, 723 | "content": "\u00b7 23 videos", 724 | "name": "span" 725 | }, 726 | { 727 | "attributes": { 728 | "class": [ 729 | "item-details" 730 | ] 731 | }, 732 | "content": "\u00b7 6 videos", 733 | "name": "span" 734 | }, 735 | { 736 | "attributes": { 737 | "class": [ 738 | "item-details" 739 | ] 740 | }, 741 | "content": "\u00b7 40 videos", 742 | "name": "span" 743 | }, 744 | { 745 | "attributes": { 746 | "class": [ 747 | "item-details" 748 | ] 749 | }, 750 | "content": "\u00b7 5 videos", 751 | "name": "span" 752 | }, 753 | { 754 | "attributes": { 755 | "class": [ 756 | "item-details" 757 | ] 758 | }, 759 | "content": "\u00b7 7 videos", 760 | "name": "span" 761 | }, 762 | { 763 | "attributes": { 764 | "class": [ 765 | "item-details" 766 | ] 767 | }, 768 | "content": "\u00b7 48 videos", 769 | "name": "span" 770 | }, 771 | { 772 | "attributes": { 773 | "class": [ 774 | "item-details" 775 | ] 776 | }, 777 | "content": "\u00b7 15 videos", 778 | "name": "span" 779 | }, 780 | { 781 | "attributes": { 782 | "class": [ 783 | "item-details" 784 | ] 785 | }, 786 | "content": "\u00b7 18 videos", 787 | "name": "span" 788 | }, 789 | { 790 | "attributes": { 791 | "class": [ 792 | "item-details" 793 | ] 794 | }, 795 | "content": "\u00b7 8 videos", 796 | "name": "span" 797 | }, 798 | { 799 | "attributes": { 800 | "class": [ 801 | "panel-title-icon", 802 | "fa", 803 | "fa-bookmark" 804 | ] 805 | }, 806 | "content": null, 807 | "name": "i" 808 | }, 809 | { 810 | "attributes": { 811 | "href": "/search.php?type=1&sort=pop&" 812 | }, 813 | "content": "view all...", 814 | "name": "a" 815 | }, 816 | { 817 | "attributes": { 818 | "alt": "Girls logo", 819 | "src": "/photos/users/35257/resized/9fd79de3589edff68db18bb6141025c3.jpg" 820 | }, 821 | "content": null, 822 | "name": "img" 823 | }, 824 | { 825 | "attributes": { 826 | "class": [ 827 | "item-details" 828 | ] 829 | }, 830 | "content": "\u00b7 78 followers", 831 | "name": "span" 832 | }, 833 | { 834 | "attributes": { 835 | "alt": "thenewboston logo", 836 | "src": "/photos/users/2/resized/8aa8647e9d0606074a04bfb6ee64fa70.png" 837 | }, 838 | "content": null, 839 | "name": "img" 840 | }, 841 | { 842 | "attributes": { 843 | "class": [ 844 | "item-details" 845 | ] 846 | }, 847 | "content": "\u00b7 757 followers", 848 | "name": "span" 849 | }, 850 | { 851 | "attributes": { 852 | "alt": "future logo", 853 | "src": "/photos/users/291/resized/4492b84252ec36c351e31d851237354e.jpg" 854 | }, 855 | "content": null, 856 | "name": "img" 857 | }, 858 | { 859 | "attributes": { 860 | "class": [ 861 | "item-details" 862 | ] 863 | }, 864 | "content": "\u00b7 77 followers", 865 | "name": "span" 866 | }, 867 | { 868 | "attributes": { 869 | "alt": "Movie Fans logo", 870 | "src": "/photos/users/4237/resized/8b438442aaf1377b628ae68f5cefa4f0.jpg" 871 | }, 872 | "content": null, 873 | "name": "img" 874 | }, 875 | { 876 | "attributes": { 877 | "class": [ 878 | "item-details" 879 | ] 880 | }, 881 | "content": "\u00b7 33 followers", 882 | "name": "span" 883 | }, 884 | { 885 | "attributes": { 886 | "alt": "Real Game Dev", 887 | "src": "/photos/users/4454/resized/be9304e0f54abb7abc77686b6ba6d307.png" 888 | }, 889 | "content": null, 890 | "name": "img" 891 | }, 892 | { 893 | "attributes": { 894 | "class": [ 895 | "item-details" 896 | ] 897 | }, 898 | "content": "\u00b7 62 followers", 899 | "name": "span" 900 | }, 901 | { 902 | "attributes": { 903 | "alt": "Song Per Day", 904 | "src": "/photos/users/4454/resized/117c0964cb691257ec6462197fdac778.png" 905 | }, 906 | "content": null, 907 | "name": "img" 908 | }, 909 | { 910 | "attributes": { 911 | "class": [ 912 | "item-details" 913 | ] 914 | }, 915 | "content": "\u00b7 34 followers", 916 | "name": "span" 917 | }, 918 | { 919 | "attributes": { 920 | "alt": "Scenery Around The World", 921 | "src": "/photos/users/25213/resized/83ca8275492b51a3300e415764a3e97d.jpg" 922 | }, 923 | "content": null, 924 | "name": "img" 925 | }, 926 | { 927 | "attributes": { 928 | "class": [ 929 | "item-details" 930 | ] 931 | }, 932 | "content": "\u00b7 19 followers", 933 | "name": "span" 934 | }, 935 | { 936 | "attributes": { 937 | "alt": "Pixelated Motivation", 938 | "src": "/photos/users/4454/resized/5e7c4957a7c1b8e31e45e3b62affff7c.png" 939 | }, 940 | "content": null, 941 | "name": "img" 942 | }, 943 | { 944 | "attributes": { 945 | "class": [ 946 | "item-details" 947 | ] 948 | }, 949 | "content": "\u00b7 54 followers", 950 | "name": "span" 951 | }, 952 | { 953 | "attributes": { 954 | "class": [ 955 | "panel-title-icon", 956 | "fa", 957 | "fa-comments" 958 | ] 959 | }, 960 | "content": null, 961 | "name": "i" 962 | }, 963 | { 964 | "attributes": { 965 | "href": "/forum/search_forums.php" 966 | }, 967 | "content": "view all...", 968 | "name": "a" 969 | }, 970 | { 971 | "attributes": { 972 | "alt": "C++", 973 | "src": "/images/forum/logos/b57c66566dd5286a036435b570d1740f.png" 974 | }, 975 | "content": null, 976 | "name": "img" 977 | }, 978 | { 979 | "attributes": { 980 | "class": [ 981 | "following-row-text" 982 | ] 983 | }, 984 | "content": "C++", 985 | "name": "span" 986 | }, 987 | { 988 | "attributes": { 989 | "alt": "Game Design / UDK / Unity", 990 | "src": "/images/forum/logos/23.png" 991 | }, 992 | "content": null, 993 | "name": "img" 994 | }, 995 | { 996 | "attributes": { 997 | "class": [ 998 | "following-row-text" 999 | ] 1000 | }, 1001 | "content": "Game Design / UDK / Unity", 1002 | "name": "span" 1003 | }, 1004 | { 1005 | "attributes": { 1006 | "alt": "General Chat", 1007 | "src": "/images/forum/logos/40b7d73b02803aace9d158fca9bde527.png" 1008 | }, 1009 | "content": null, 1010 | "name": "img" 1011 | }, 1012 | { 1013 | "attributes": { 1014 | "class": [ 1015 | "following-row-text" 1016 | ] 1017 | }, 1018 | "content": "General Chat", 1019 | "name": "span" 1020 | }, 1021 | { 1022 | "attributes": { 1023 | "alt": "HTML / CSS / Web Design", 1024 | "src": "/images/forum/logos/145efe2aab7ca9959397d6344180b658.png" 1025 | }, 1026 | "content": null, 1027 | "name": "img" 1028 | }, 1029 | { 1030 | "attributes": { 1031 | "class": [ 1032 | "following-row-text" 1033 | ] 1034 | }, 1035 | "content": "HTML / CSS / Web Design", 1036 | "name": "span" 1037 | }, 1038 | { 1039 | "attributes": { 1040 | "alt": "Java / Android Development", 1041 | "src": "/images/forum/logos/dfdfdb6ea30dd264d092183442b4ec5c.png" 1042 | }, 1043 | "content": null, 1044 | "name": "img" 1045 | }, 1046 | { 1047 | "attributes": { 1048 | "class": [ 1049 | "following-row-text" 1050 | ] 1051 | }, 1052 | "content": "Java / Android Development", 1053 | "name": "span" 1054 | }, 1055 | { 1056 | "attributes": { 1057 | "alt": "Javascript", 1058 | "src": "/images/forum/logos/11.png" 1059 | }, 1060 | "content": null, 1061 | "name": "img" 1062 | }, 1063 | { 1064 | "attributes": { 1065 | "class": [ 1066 | "following-row-text" 1067 | ] 1068 | }, 1069 | "content": "Javascript", 1070 | "name": "span" 1071 | }, 1072 | { 1073 | "attributes": { 1074 | "alt": "Linux", 1075 | "src": "/images/forum/logos/e1d4744681368d92c847480734c0ea2b.png" 1076 | }, 1077 | "content": null, 1078 | "name": "img" 1079 | }, 1080 | { 1081 | "attributes": { 1082 | "class": [ 1083 | "following-row-text" 1084 | ] 1085 | }, 1086 | "content": "Linux", 1087 | "name": "span" 1088 | }, 1089 | { 1090 | "attributes": { 1091 | "alt": "Networking", 1092 | "src": "/images/forum/logos/bc250f3c219a9748e82320ca66ea228e.jpg" 1093 | }, 1094 | "content": null, 1095 | "name": "img" 1096 | }, 1097 | { 1098 | "attributes": { 1099 | "class": [ 1100 | "following-row-text" 1101 | ] 1102 | }, 1103 | "content": "Networking", 1104 | "name": "span" 1105 | }, 1106 | { 1107 | "attributes": { 1108 | "alt": "PHP", 1109 | "src": "/images/forum/logos/14.png" 1110 | }, 1111 | "content": null, 1112 | "name": "img" 1113 | }, 1114 | { 1115 | "attributes": { 1116 | "class": [ 1117 | "following-row-text" 1118 | ] 1119 | }, 1120 | "content": "PHP", 1121 | "name": "span" 1122 | }, 1123 | { 1124 | "attributes": { 1125 | "alt": "Python", 1126 | "src": "/images/forum/logos/413e73d9c942b5dc27fcfce548046a15.png" 1127 | }, 1128 | "content": null, 1129 | "name": "img" 1130 | }, 1131 | { 1132 | "attributes": { 1133 | "class": [ 1134 | "following-row-text" 1135 | ] 1136 | }, 1137 | "content": "Python", 1138 | "name": "span" 1139 | } 1140 | ], 1141 | "headers": { 1142 | "Pragma": "no-cache", 1143 | "Expires": "Thu, 19 Nov 1981 08:52:00 GMT", 1144 | "Vary": "Accept-Encoding", 1145 | "Transfer-Encoding": "chunked", 1146 | "Content-Security-Policy": "style-src 'self' 'unsafe-inline' fonts.googleapis.com maxcdn.bootstrapcdn.com", 1147 | "Server": "nginx", 1148 | "Set-Cookie": "_TNB_SSESSID=90cec9tri88kh40jhen2jrd7i4; path=/; domain=thenewboston.com; secure; HttpOnly", 1149 | "X-XSS-Protection": "1; mode=block", 1150 | "Cache-Control": "no-store, no-cache, must-revalidate, post-check=0, pre-check=0", 1151 | "Content-Type": "text/html", 1152 | "Connection": "close", 1153 | "Date": "Mon, 30 May 2016 20:32:26 GMT" 1154 | }, 1155 | "status": 200, 1156 | "url": "https://thenewboston.com/" 1157 | } -------------------------------------------------------------------------------- /stopwords.txt: -------------------------------------------------------------------------------- 1 | a 2 | able 3 | about 4 | above 5 | abst 6 | accordance 7 | according 8 | accordingly 9 | across 10 | act 11 | actually 12 | added 13 | adj 14 | affected 15 | affecting 16 | affects 17 | after 18 | afterwards 19 | again 20 | against 21 | ah 22 | all 23 | almost 24 | alone 25 | along 26 | already 27 | also 28 | although 29 | always 30 | am 31 | among 32 | amongst 33 | an 34 | and 35 | announce 36 | another 37 | any 38 | anybody 39 | anyhow 40 | anymore 41 | anyone 42 | anything 43 | anyway 44 | anyways 45 | anywhere 46 | apparently 47 | approximately 48 | are 49 | aren 50 | arent 51 | arise 52 | around 53 | as 54 | aside 55 | ask 56 | asking 57 | at 58 | auth 59 | available 60 | away 61 | awfully 62 | b 63 | back 64 | be 65 | became 66 | because 67 | become 68 | becomes 69 | becoming 70 | been 71 | before 72 | beforehand 73 | begin 74 | beginning 75 | beginnings 76 | begins 77 | behind 78 | being 79 | believe 80 | below 81 | beside 82 | besides 83 | between 84 | beyond 85 | biol 86 | both 87 | brief 88 | briefly 89 | but 90 | by 91 | c 92 | ca 93 | came 94 | can 95 | cannot 96 | cant 97 | cause 98 | causes 99 | certain 100 | certainly 101 | co 102 | com 103 | come 104 | comes 105 | contain 106 | containing 107 | contains 108 | could 109 | couldnt 110 | d 111 | date 112 | did 113 | didnt 114 | different 115 | do 116 | does 117 | doesnt 118 | doing 119 | done 120 | dont 121 | down 122 | downwards 123 | due 124 | during 125 | e 126 | each 127 | ed 128 | edu 129 | effect 130 | eg 131 | eight 132 | eighty 133 | either 134 | else 135 | elsewhere 136 | end 137 | ending 138 | enough 139 | especially 140 | et 141 | et-al 142 | etc 143 | even 144 | ever 145 | every 146 | everybody 147 | everyone 148 | everything 149 | everywhere 150 | ex 151 | except 152 | f 153 | far 154 | few 155 | ff 156 | fifth 157 | first 158 | five 159 | fix 160 | followed 161 | following 162 | follows 163 | for 164 | former 165 | formerly 166 | forth 167 | found 168 | four 169 | from 170 | further 171 | furthermore 172 | g 173 | gave 174 | get 175 | gets 176 | getting 177 | give 178 | given 179 | gives 180 | giving 181 | go 182 | goes 183 | gone 184 | got 185 | gotten 186 | h 187 | had 188 | happens 189 | hardly 190 | has 191 | hasnt 192 | have 193 | havent 194 | having 195 | he 196 | hed 197 | hence 198 | her 199 | here 200 | hereafter 201 | hereby 202 | herein 203 | heres 204 | hereupon 205 | hers 206 | herself 207 | hes 208 | hi 209 | hid 210 | him 211 | himself 212 | his 213 | hither 214 | home 215 | how 216 | howbeit 217 | however 218 | hundred 219 | i 220 | id 221 | ie 222 | if 223 | ill 224 | im 225 | immediate 226 | immediately 227 | importance 228 | important 229 | in 230 | inc 231 | indeed 232 | index 233 | information 234 | instead 235 | into 236 | invention 237 | inward 238 | is 239 | isnt 240 | it 241 | itd 242 | itll 243 | its 244 | itself 245 | ive 246 | j 247 | just 248 | k 249 | keep 250 | keeps 251 | kept 252 | kg 253 | km 254 | know 255 | known 256 | knows 257 | l 258 | largely 259 | last 260 | lately 261 | later 262 | latter 263 | latterly 264 | least 265 | less 266 | lest 267 | let 268 | lets 269 | like 270 | liked 271 | likely 272 | line 273 | little 274 | ll 275 | look 276 | looking 277 | looks 278 | ltd 279 | m 280 | made 281 | mainly 282 | make 283 | makes 284 | many 285 | may 286 | maybe 287 | me 288 | mean 289 | means 290 | meantime 291 | meanwhile 292 | merely 293 | mg 294 | might 295 | million 296 | miss 297 | ml 298 | more 299 | moreover 300 | most 301 | mostly 302 | mr 303 | mrs 304 | much 305 | mug 306 | must 307 | my 308 | myself 309 | n 310 | na 311 | name 312 | namely 313 | nay 314 | nd 315 | near 316 | nearly 317 | necessarily 318 | necessary 319 | need 320 | needs 321 | neither 322 | never 323 | nevertheless 324 | new 325 | next 326 | nine 327 | ninety 328 | no 329 | nobody 330 | non 331 | none 332 | nonetheless 333 | noone 334 | nor 335 | normally 336 | nos 337 | not 338 | noted 339 | nothing 340 | now 341 | nowhere 342 | o 343 | obtain 344 | obtained 345 | obviously 346 | of 347 | off 348 | often 349 | oh 350 | ok 351 | okay 352 | old 353 | omitted 354 | on 355 | once 356 | one 357 | ones 358 | only 359 | onto 360 | or 361 | ord 362 | other 363 | others 364 | otherwise 365 | ought 366 | our 367 | ours 368 | ourselves 369 | out 370 | outside 371 | over 372 | overall 373 | owing 374 | own 375 | p 376 | page 377 | pages 378 | part 379 | particular 380 | particularly 381 | past 382 | per 383 | perhaps 384 | placed 385 | please 386 | plus 387 | poorly 388 | possible 389 | possibly 390 | potentially 391 | pp 392 | predominantly 393 | present 394 | previously 395 | primarily 396 | probably 397 | promptly 398 | proud 399 | provides 400 | put 401 | q 402 | que 403 | quickly 404 | quite 405 | qv 406 | r 407 | ran 408 | rather 409 | rd 410 | re 411 | readily 412 | really 413 | recent 414 | recently 415 | ref 416 | refs 417 | regarding 418 | regardless 419 | regards 420 | related 421 | relatively 422 | research 423 | respectively 424 | resulted 425 | resulting 426 | results 427 | right 428 | run 429 | s 430 | said 431 | same 432 | saw 433 | say 434 | saying 435 | says 436 | sec 437 | section 438 | see 439 | seeing 440 | seem 441 | seemed 442 | seeming 443 | seems 444 | seen 445 | self 446 | selves 447 | sent 448 | seven 449 | several 450 | shall 451 | she 452 | shed 453 | shell 454 | shes 455 | should 456 | shouldnt 457 | show 458 | showed 459 | shown 460 | showns 461 | shows 462 | significant 463 | significantly 464 | similar 465 | similarly 466 | since 467 | six 468 | slightly 469 | so 470 | some 471 | somebody 472 | somehow 473 | someone 474 | somethan 475 | something 476 | sometime 477 | sometimes 478 | somewhat 479 | somewhere 480 | soon 481 | sorry 482 | specifically 483 | specified 484 | specify 485 | specifying 486 | still 487 | stop 488 | strongly 489 | sub 490 | substantially 491 | successfully 492 | such 493 | sufficiently 494 | suggest 495 | sup 496 | sure 497 | t 498 | take 499 | taken 500 | taking 501 | tell 502 | tends 503 | th 504 | than 505 | thank 506 | thanks 507 | thanx 508 | that 509 | thatll 510 | thats 511 | thatve 512 | the 513 | their 514 | theirs 515 | them 516 | themselves 517 | then 518 | thence 519 | there 520 | thereafter 521 | thereby 522 | thered 523 | therefore 524 | therein 525 | therell 526 | thereof 527 | therere 528 | theres 529 | thereto 530 | thereupon 531 | thereve 532 | these 533 | they 534 | theyd 535 | theyll 536 | theyre 537 | theyve 538 | think 539 | this 540 | those 541 | thou 542 | though 543 | thoughh 544 | thousand 545 | throug 546 | through 547 | throughout 548 | thru 549 | thus 550 | til 551 | tip 552 | to 553 | together 554 | too 555 | took 556 | toward 557 | towards 558 | tried 559 | tries 560 | truly 561 | try 562 | trying 563 | ts 564 | twice 565 | two 566 | u 567 | un 568 | under 569 | unfortunately 570 | unless 571 | unlike 572 | unlikely 573 | until 574 | unto 575 | up 576 | upon 577 | ups 578 | us 579 | use 580 | used 581 | useful 582 | usefully 583 | usefulness 584 | uses 585 | using 586 | usually 587 | v 588 | value 589 | various 590 | ve 591 | very 592 | via 593 | viz 594 | vol 595 | vols 596 | vs 597 | w 598 | want 599 | wants 600 | was 601 | wasnt 602 | way 603 | we 604 | wed 605 | welcome 606 | well 607 | went 608 | were 609 | werent 610 | weve 611 | what 612 | whatever 613 | whatll 614 | whats 615 | when 616 | whence 617 | whenever 618 | where 619 | whereafter 620 | whereas 621 | whereby 622 | wherein 623 | wheres 624 | whereupon 625 | wherever 626 | whether 627 | which 628 | while 629 | whim 630 | whither 631 | who 632 | whod 633 | whoever 634 | whole 635 | wholl 636 | whom 637 | whomever 638 | whos 639 | whose 640 | why 641 | widely 642 | willing 643 | wish 644 | with 645 | within 646 | without 647 | wont 648 | words 649 | world 650 | would 651 | wouldnt 652 | www 653 | x 654 | y 655 | yes 656 | yet 657 | you 658 | youd 659 | youll 660 | your 661 | youre 662 | yours 663 | yourself 664 | yourselves 665 | youve 666 | z 667 | zero -------------------------------------------------------------------------------- /tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buckyroberts/Web-Analyzer/a639773c678b47fae06c2959164c634144b44d16/tools/__init__.py -------------------------------------------------------------------------------- /tools/general.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | 4 | def file_to_set(file_name): 5 | results = set() 6 | with open(file_name, 'rt') as f: 7 | for line in f: 8 | results.add(line.replace('\n', '')) 9 | return results 10 | 11 | 12 | def read_json(file_name): 13 | with open(file_name, 'r') as f: 14 | data = json.load(f) 15 | return data 16 | --------------------------------------------------------------------------------