diff --git a/output.json b/output.json index 21642c1..c5941fb 100644 --- a/output.json +++ b/output.json @@ -1,4 +1,155 @@ -[{"course_link": "/After-Effects-tutorials/Getting-Started-Stop-Motion-Animation/163241-2.html", "course_title": "Getting Started with Stop Motion Animation"}, +[ +{"course_link": "/Illustrator-tutorials/Pixel-Playground-Bert-Monroy/122998-2.html", "course_title": "Pixel Playground with Bert Monroy"}, +{"course_link": "/Illustrator-tutorials/Pixel-Playground-Bert-Monroy/122998-2.html", "course_title": "Selling Music: MP3s, Streams, and CDs"}, +{"course_link": "/Audio-Music-Business-Skills-tutorials/Selling-Music-MP3s-Streams-CDs/163755-2.html", "course_title": "Travel Photography: Mountains and Snow Landscapes"}, +{"course_link": "/Audio-Music-Business-Skills-tutorials/Selling-Music-MP3s-Streams-CDs/163755-2.html", "course_title": "Up and Running with the Foundry CameraTracker for After Effects"}, +{"course_link": "/Photography-Cameras-Gear-tutorials/Travel-Photography-Mountains-Snow-Landscapes/157343-2.html", "course_title": "WordPress Developer Tips: Deleting Spam Comments in the Database"}, +{"course_link": "/Photography-Cameras-Gear-tutorials/Travel-Photography-Mountains-Snow-Landscapes/157343-2.html", "course_title": "DSLR Video Tips"}, +{"course_link": "/CameraTracker-tutorials/Up-Running-Foundry-CameraTracker-After-Effects/157344-2.html", "course_title": "Real-World GIS"}, +{"course_link": "/CameraTracker-tutorials/Up-Running-Foundry-CameraTracker-After-Effects/157344-2.html", "course_title": "InDesign Secrets"}, +{"course_link": "/WordPress-tutorials/WordPress-Developer-Tips-Deleting-Spam-Comments-Database/163115-2.html", "course_title": "After Effects: Creative Cloud Updates"}, +{"course_link": "/WordPress-tutorials/WordPress-Developer-Tips-Deleting-Spam-Comments-Database/163115-2.html", "course_title": "The Practicing Photographer"}, +{"course_link": "/Final-Cut-Pro-tutorials/DSLR-Video-Tips/103707-2.html", "course_title": "Portrait Project: Retouching a Studio Portrait"}, +{"course_link": "/Final-Cut-Pro-tutorials/DSLR-Video-Tips/103707-2.html", "course_title": "Breaking Out of a Rut"}, +{"course_link": "/ArcGIS-tutorials/Real-World-GIS/162135-2.html", "course_title": "Up and Running with Google Glass"}, +{"course_link": "/ArcGIS-tutorials/Real-World-GIS/162135-2.html", "course_title": "FileMaker Pro 13 Essential Training"}, +{"course_link": "/InDesign-tutorials/InDesign-Secrets/85324-2.html", "course_title": "Management Tips"}, +{"course_link": "/InDesign-tutorials/InDesign-Secrets/85324-2.html", "course_title": "Google Analytics Tips"}, +{"course_link": "/After-Effects-tutorials/After-Effects-Creative-Cloud-Updates/124400-2.html", "course_title": "Persuasive UX: Creating Credibility"}, +{"course_link": "/After-Effects-tutorials/After-Effects-Creative-Cloud-Updates/124400-2.html", "course_title": "Designing a Logo for a Band"}, +{"course_link": "/Photography-tutorials/Practicing-Photographer/119012-2.html", "course_title": "Small Business Secrets"}, +{"course_link": "/Photography-tutorials/Practicing-Photographer/119012-2.html", "course_title": "Deke's Techniques"}, +{"course_link": "/Photoshop-tutorials/Portrait-Project-Retouching-Studio-Portrait/163420-2.html", "course_title": "Pro Video Tips"}, +{"course_link": "/Photoshop-tutorials/Portrait-Project-Retouching-Studio-Portrait/163420-2.html", "course_title": "Writing Press Releases"}, +{"course_link": "/Business-Business-Skills-tutorials/Breaking-Out-Rut/156548-2.html", "course_title": "Top 5 Tips for Search-Friendly Press Releases"}, +{"course_link": "/Business-Business-Skills-tutorials/Breaking-Out-Rut/156548-2.html", "course_title": "Photography and the Law: Photographers' Rights and Releases"}, +{"course_link": "/Glass-tutorials/Up-Running-Google-Glass/160816-2.html", "course_title": "Rendering Interiors in 3ds Max"}, +{"course_link": "/Glass-tutorials/Up-Running-Google-Glass/160816-2.html", "course_title": "Monday Productivity Pointers"}, +{"course_link": "/FileMaker-Pro-tutorials/FileMaker-Pro-13-Essential-Training/161168-2.html", "course_title": "Creative Quick Tips"}, +{"course_link": "/FileMaker-Pro-tutorials/FileMaker-Pro-13-Essential-Training/161168-2.html", "course_title": "Teacher Tips"}, +{"course_link": "/Business-Business-Skills-tutorials/Management-Tips/126132-2.html", "course_title": "Preparing for Your Review"}, +{"course_link": "/Business-Business-Skills-tutorials/Management-Tips/126132-2.html", "course_title": "Dreamweaver CS6 and WordPress 3.8: Core Concepts"}, +{"course_link": "/Analytics-tutorials/Google-Analytics-Tips-Tricks-Tutorials/135364-2.html", "course_title": "Up and Running with ASP.NET"}, +{"course_link": "/Analytics-tutorials/Google-Analytics-Tips-Tricks-Tutorials/135364-2.html", "course_title": "The Power of PreViz Using Video"}, +{"course_link": "/Web-User-Experience-tutorials/Persuasive-UX-Creating-Credibility/162705-2.html", "course_title": "NAB 2014: A First Look at Panasonic's GH4"}, +{"course_link": "/Web-User-Experience-tutorials/Persuasive-UX-Creating-Credibility/162705-2.html", "course_title": "Creative Insights: Ayah Bdeir and littleBits"}, +{"course_link": "/Illustrator-tutorials/Designing-Logo-Band/160273-2.html", "course_title": "Letting an Employee Go"}, +{"course_link": "/Illustrator-tutorials/Designing-Logo-Band/160273-2.html", "course_title": "Google Docs and Sheets on iOS First Look"}, +{"course_link": "/Business-Business-Skills-tutorials/Small-Business-Secrets/156584-2.html", "course_title": "Up and Running with LinkedIn"}, +{"course_link": "/Business-Business-Skills-tutorials/Small-Business-Secrets/156584-2.html", "course_title": "The Science of Logo Design"}, +{"course_link": "/Illustrator-tutorials/Dekes-Techniques/76067-2.html", "course_title": "Keynote 6 Essential Training"}, +{"course_link": "/Illustrator-tutorials/Dekes-Techniques/76067-2.html", "course_title": "UX Design Techniques: Paper Prototyping"}, +{"course_link": "/Video-Shooting-Video-tutorials/Pro-Video-Tips/129017-2.html", "course_title": "Marketing Tips"}, +{"course_link": "/Video-Shooting-Video-tutorials/Pro-Video-Tips/129017-2.html", "course_title": "Instructional Design Essentials: Storyboarding"}, +{"course_link": "/Business-Online-Marketing-tutorials/Writing-Press-Releases/152381-2.html", "course_title": "Selling Music Merchandise"}, +{"course_link": "/Business-Online-Marketing-tutorials/Writing-Press-Releases/152381-2.html", "course_title": "Processing Product Photos with Photoshop"}, +{"course_link": "/Business-tutorials/Top-5-Tips-Search-Friendly-Press-Releases/163419-2.html", "course_title": "Deploying Icon Fonts for the Web"}, +{"course_link": "/Business-tutorials/Top-5-Tips-Search-Friendly-Press-Releases/163419-2.html", "course_title": "Installing Windows 8 in VMware Workstation"}, +{"course_link": "/Design-tutorials/Photography-Law-Photographers-Rights-Releases/163642-2.html", "course_title": "Installing Windows 8 in VMware Fusion"}, +{"course_link": "/Design-tutorials/Photography-Law-Photographers-Rights-Releases/163642-2.html", "course_title": "Foundations of Drawing"}, +{"course_link": "/3D-Animation-Architecture-tutorials/Rendering-Interiors-3ds-Max/160708-2.html", "course_title": "Top 5 Money-Saving AdWords Tips"}, +{"course_link": "/3D-Animation-Architecture-tutorials/Rendering-Interiors-3ds-Max/160708-2.html", "course_title": "Pay-Per-Click Fundamentals"}, +{"course_link": "/Business-Business-Skills-tutorials/Managing-Project-Budgets/139982-2.html", "course_title": "Managing Project Budgets"}, +{"course_link": "/Business-Business-Skills-tutorials/Managing-Project-Budgets/139982-2.html", "course_title": "Insights on Automotive Design with Veejay Gahir"}, +{"course_link": "/CAD-Product-Design-tutorials/Insights-Automotive-Design-Veejay-Gahir/163418-2.html", "course_title": "Photography and the Law: Understanding Copyright"}, +{"course_link": "/CAD-Product-Design-tutorials/Insights-Automotive-Design-Veejay-Gahir/163418-2.html", "course_title": "Songwriting in Pro Tools"}, +{"course_link": "/Design-tutorials/Photography-Law-Understanding-Copyright/160107-2.html", "course_title": "JavaScript Templating"}, +{"course_link": "/Design-tutorials/Photography-Law-Understanding-Copyright/160107-2.html", "course_title": "UX Design Tools: Axure"}, +{"course_link": "/Pro-Tools-tutorials/Songwriting-Pro-Tools/161276-2.html", "course_title": "Data Visualization Fundamentals"}, +{"course_link": "/Pro-Tools-tutorials/Songwriting-Pro-Tools/161276-2.html", "course_title": "Persuasive UX: Harnessing Illogical Reactions"}, +{"course_link": "/Web-Interaction-Design-tutorials/JavaScript-Templating/156166-2.html", "course_title": "Up and Running with Arduino"}, +{"course_link": "/Web-Interaction-Design-tutorials/JavaScript-Templating/156166-2.html", "course_title": "Building a Note-Taking App for iOS 7"}, +{"course_link": "/Web-User-Experience-tutorials/UX-Design-Tools-Axure/157028-2.html", "course_title": "Mograph Techniques: Creating a Flat Vector look using C4D and After Effects"}, +{"course_link": "/Web-User-Experience-tutorials/UX-Design-Tools-Axure/157028-2.html", "course_title": "Hand-Drawn Animation in Flash"}, +{"course_link": "/Design-Infographics-tutorials/Data-Visualization-Fundamentals/153776-2.html", "course_title": "Designs dekeConstructed: Your Own Online Avatar"}, +{"course_link": "/Design-Infographics-tutorials/Data-Visualization-Fundamentals/153776-2.html", "course_title": "Drawing Vector Graphics: Patterns"}, +{"course_link": "/Web-User-Experience-tutorials/Persuasive-UX-Harnessing-Illogical-Reactions/162704-2.html", "course_title": "OmniGraffle 6 Essential Training"}, +{"course_link": "/Web-User-Experience-tutorials/Persuasive-UX-Harnessing-Illogical-Reactions/162704-2.html", "course_title": "Up and Running with Mathematica 9"}, +{"course_link": "/Arduino-tutorials/Up-Running-Arduino/162273-2.html", "course_title": "Influencing Others"}, +{"course_link": "/Arduino-tutorials/Up-Running-Arduino/162273-2.html", "course_title": "Recolorizing a Photograph with Photoshop"}, +{"course_link": "/iOS-tutorials/Building-Note-Taking-App-iOS-7/161476-2.html", "course_title": "Drawing on the iPad with SketchBook Pro"}, +{"course_link": "/iOS-tutorials/Building-Note-Taking-App-iOS-7/161476-2.html", "course_title": "Crystal Reports 2013 Essential Training"}, +{"course_link": "/After-Effects-tutorials/Mograph-Techniques-Creating-Flat-Vector-look-using-C4D-After-Effects/155268-2.html", "course_title": "Inventor 2014 Essential Training"}, +{"course_link": "/After-Effects-tutorials/Mograph-Techniques-Creating-Flat-Vector-look-using-C4D-After-Effects/155268-2.html", "course_title": "Up and Running with PhoneGap Build"}, +{"course_link": "/Flash-Professional-tutorials/Hand-Drawn-Animation-Flash/158768-2.html", "course_title": "Graphic Design for Business Professionals"}, +{"course_link": "/Flash-Professional-tutorials/Hand-Drawn-Animation-Flash/158768-2.html", "course_title": "Creative Spark: Grammar Girl, Changing Writing One Word at a Time"}, +{"course_link": "/Illustrator-tutorials/Designs-dekeConstructed-Your-Own-Online-Avatar/165500-2.html", "course_title": "Modeling an F1 Wheel in Maya"}, +{"course_link": "/Illustrator-tutorials/Designs-dekeConstructed-Your-Own-Online-Avatar/165500-2.html", "course_title": "Up and Running with Google AdSense"}, +{"course_link": "/Illustrator-tutorials/Drawing-Vector-Graphics-Patterns/144026-2.html", "course_title": "Shooting a Photo Essay: Telling a Family Story"}, +{"course_link": "/Illustrator-tutorials/Drawing-Vector-Graphics-Patterns/144026-2.html", "course_title": "Design the Web: Graphics and CSS Pseudo-Elements"}, +{"course_link": "/OmniGraffle-tutorials/OmniGraffle-6-Essential-Training/161315-2.html", "course_title": "Moodle 2.6 Essential Training"}, +{"course_link": "/OmniGraffle-tutorials/OmniGraffle-6-Essential-Training/161315-2.html", "course_title": "Excel 2013: Managing Multiple Worksheets and Workbooks"}, +{"course_link": "/Mathematica-tutorials/Up-Running-Mathematica-9/163927-2.html", "course_title": "Heartbleed Tactics for Small IT Shops"}, +{"course_link": "/Mathematica-tutorials/Up-Running-Mathematica-9/163927-2.html", "course_title": "Protecting Yourself from the Heartbleed Bug"}, +{"course_link": "/Business-Business-Skills-tutorials/Influencing-Others/148625-2.html", "course_title": "VFX Techniques: Digital Set Extension"}, +{"course_link": "/Business-Business-Skills-tutorials/Influencing-Others/148625-2.html", "course_title": "Type Project: Grunge Poster"}, +{"course_link": "/Photoshop-tutorials/Recolorizing-Photograph-Photoshop/160272-2.html", "course_title": "Creating a Marquee in WordPress with jQuery"}, +{"course_link": "/Photoshop-tutorials/Recolorizing-Photograph-Photoshop/160272-2.html", "course_title": "Job Hunting Online"}, +{"course_link": "/iPad-tutorials/Drawing-iPad-SketchBook-Pro/153781-2.html", "course_title": "Up and Running with Perfect Photo Suite 8"}, +{"course_link": "/iPad-tutorials/Drawing-iPad-SketchBook-Pro/153781-2.html", "course_title": "Managing Project Change"}, +{"course_link": "/Crystal-Reports-tutorials/Crystal-Reports-2013-Essential-Training/162456-2.html", "course_title": "Exporting Data to Files with PHP"}, +{"course_link": "/Crystal-Reports-tutorials/Crystal-Reports-2013-Essential-Training/162456-2.html", "course_title": "2D Animation Principles"}, +{"course_link": "/Inventor-tutorials/Inventor-2014-Essential-Training/142115-2.html", "course_title": "Introducing Google Glass"}, +{"course_link": "/Inventor-tutorials/Inventor-2014-Essential-Training/142115-2.html", "course_title": "Mograph Techniques: Physics Simulations in After Effects"}, +{"course_link": "/Creative-Cloud-tutorials/Up-Running-PhoneGap-Build/134924-2.html", "course_title": "Programming for Non-Programmers: iOS 7"}, +{"course_link": "/Creative-Cloud-tutorials/Up-Running-PhoneGap-Build/134924-2.html", "course_title": "Working with Perspective in Photoshop"}, +{"course_link": "/Illustrator-tutorials/Graphic-Design-Business-Professionals/145210-2.html", "course_title": "Webinar Fundamentals"}, +{"course_link": "/Illustrator-tutorials/Graphic-Design-Business-Professionals/145210-2.html", "course_title": "Sketching an F1 Wheel with SketchBook Pro"}, +{"course_link": "/Business-Documentaries-tutorials/Creative-Spark-Grammar-Girl-Changing-Writing-One-Word-Time/161793-2.html", "course_title": "Up and Running with IFTTT"}, +{"course_link": "/Business-Documentaries-tutorials/Creative-Spark-Grammar-Girl-Changing-Writing-One-Word-Time/161793-2.html", "course_title": "Enhancing a Sunset Photograph with Lightroom and Photoshop"}, +{"course_link": "/Maya-tutorials/Modeling-F1-Wheel-Maya/160062-2.html", "course_title": "Persuasive UX: Influencing Behavior Patterns"}, +{"course_link": "/Maya-tutorials/Modeling-F1-Wheel-Maya/160062-2.html", "course_title": "Excel 2013: Working with Dates and Times"}, +{"course_link": "/Lightroom-tutorials/Lightroom-5-New-Features/121909-2.html", "course_title": "Lightroom 5 New Features"}, +{"course_link": "/Lightroom-tutorials/Lightroom-5-New-Features/121909-2.html", "course_title": "Rendering Interiors in Maya"}, +{"course_link": "/Maya-tutorials/Rendering-Interiors-Maya/160707-2.html", "course_title": "Windows 8.1 Update 1 First Look"}, +{"course_link": "/Maya-tutorials/Rendering-Interiors-Maya/160707-2.html", "course_title": "Lightroom Mobile First Look"}, +{"course_link": "/Windows-tutorials/Windows-81-Update-1-First-Look/168700-2.html", "course_title": "Type Project: Constructivist Poster"}, +{"course_link": "/Windows-tutorials/Windows-81-Update-1-First-Look/168700-2.html", "course_title": "PowerPoint: Builds, Transitions, Animations, and Effects"}, +{"course_link": "/Lightroom-tutorials/Lightroom-Mobile-First-Look/161480-2.html", "course_title": "Intellectual Property Fundamentals"}, +{"course_link": "/Lightroom-tutorials/Lightroom-Mobile-First-Look/161480-2.html", "course_title": "Premiere Pro: Creative Cloud Updates"}, +{"course_link": "/Illustrator-tutorials/Type-Project-Constructivist-Poster/155655-2.html", "course_title": "Up and Running with Twitter"}, +{"course_link": "/Illustrator-tutorials/Type-Project-Constructivist-Poster/155655-2.html", "course_title": "Shooting with the iPhone 5s"}, +{"course_link": "/PowerPoint-tutorials/PowerPoint-Builds-Transitions-Animations-Effects/161976-2.html", "course_title": "Motion Graphic Music Videos: The Work of Scott Pagano"}, +{"course_link": "/PowerPoint-tutorials/PowerPoint-Builds-Transitions-Animations-Effects/161976-2.html", "course_title": "Shooting with the GoPro HERO: Action Sports"}, +{"course_link": "/Business-Business-Skills-tutorials/Intellectual-Property-Fundamentals/165636-2.html", "course_title": "Excel 2013: Managing and Analyzing Data"}, +{"course_link": "/Business-Business-Skills-tutorials/Intellectual-Property-Fundamentals/165636-2.html", "course_title": "Excel 2013: Data Validation in Depth"}, +{"course_link": "/Premiere-Pro-tutorials/Premiere-Pro-Creative-Cloud-Updates/126763-2.html", "course_title": "Designing an Infographic"}, +{"course_link": "/Premiere-Pro-tutorials/Premiere-Pro-Creative-Cloud-Updates/126763-2.html", "course_title": "Creating a Responsive Design with Edge Reflow"}, +{"course_link": "/Twitter-tutorials/Up-Running-Twitter/161809-2.html", "course_title": "Draw Better and Faster with Illustrator CC"}, +{"course_link": "/Twitter-tutorials/Up-Running-Twitter/161809-2.html", "course_title": "Working with Video in Lightroom"}, +{"course_link": "/iOS-tutorials/Shooting-iPhone-5s/156167-2.html", "course_title": "Mograph Techniques: Shape Animation in After Effects"}, +{"course_link": "/iOS-tutorials/Shooting-iPhone-5s/156167-2.html", "course_title": "Up and Running with Dropbox"}, +{"course_link": "/Maya-tutorials/Motion-Graphic-Music-Videos-Work-Scott-Pagano/156549-2.html", "course_title": "Print Production Essentials: Digital and Variable Data Printing"}, +{"course_link": "/Maya-tutorials/Motion-Graphic-Music-Videos-Work-Scott-Pagano/156549-2.html", "course_title": "Design the Web: Working with PNG-8"}, +{"course_link": "/Photography-Cameras-Gear-tutorials/Shooting-GoPro-HERO-Action-Sports/153780-2.html", "course_title": "Writing Email"}, +{"course_link": "/Photography-Cameras-Gear-tutorials/Shooting-GoPro-HERO-Action-Sports/153780-2.html", "course_title": "Up and Running with MySQL Development"}, +{"course_link": "/Excel-tutorials/Excel-2013-Managing-Analyzing-Data/158657-2.html", "course_title": "Querying Microsoft SQL Server 2012"}, +{"course_link": "/Excel-tutorials/Excel-2013-Managing-Analyzing-Data/158657-2.html", "course_title": "Android Studio First Look"}, +{"course_link": "/Excel-tutorials/Excel-2013-Data-Validation-Depth/158659-2.html", "course_title": "Cloth Simulation in 3ds Max"}, +{"course_link": "/Excel-tutorials/Excel-2013-Data-Validation-Depth/158659-2.html", "course_title": "Up and Running with CoffeeScript"}, +{"course_link": "/Illustrator-tutorials/Designing-Infographic/160274-2.html", "course_title": "Shooting a Hyperlapse Time-Lapse Video"}, +{"course_link": "/Illustrator-tutorials/Designing-Infographic/160274-2.html", "course_title": "Installing Apache, MySQL, and PHP"}, +{"course_link": "/Edge-Reflow-tutorials/Creating-Responsive-Design-Edge-Reflow/155935-2.html", "course_title": "Technical Illustration: Creating a Cutaway"}, +{"course_link": "/Edge-Reflow-tutorials/Creating-Responsive-Design-Edge-Reflow/155935-2.html", "course_title": "Navisworks Essential Training"}, +{"course_link": "/Illustrator-tutorials/Draw-Better-Faster-Illustrator-CC/165499-2.html", "course_title": "Rewarding Employees"}, +{"course_link": "/Illustrator-tutorials/Draw-Better-Faster-Illustrator-CC/165499-2.html", "course_title": "Up and Running with MainStage 3"}, +{"course_link": "/Lightroom-tutorials/Working-Video-Lightroom/161478-2.html", "course_title": "Office for iPad First Look"}, +{"course_link": "/Lightroom-tutorials/Working-Video-Lightroom/161478-2.html", "course_title": "Up and Running with Evernote for Windows"}, +{"course_link": "/After-Effects-tutorials/Mograph-Techniques-Shape-Animation-After-Effects/155266-2.html", "course_title": "Implementing a Data Warehouse with Microsoft SQL Server 2012"}, +{"course_link": "/After-Effects-tutorials/Mograph-Techniques-Shape-Animation-After-Effects/155266-2.html", "course_title": "After Effects Guru: Faster Previews and Rendering"}, +{"course_link": "/Dropbox-tutorials/Up-Running-Dropbox/153122-2.html", "course_title": "Facial Rigging in Maya"}, +{"course_link": "/Dropbox-tutorials/Up-Running-Dropbox/153122-2.html", "course_title": "Up and Running with AngularJS"}, +{"course_link": "/InDesign-tutorials/Print-Production-Essentials-Digital-Variable-Data-Printing/142024-2.html", "course_title": "How to use lynda.com"}, +{"course_link": "/InDesign-tutorials/Print-Production-Essentials-Digital-Variable-Data-Printing/142024-2.html", "course_title": "Up and Running with Cloud Service APIs"}, +{"course_link": "/Photoshop-tutorials/Design-Web-Working-PNG-8/162712-2.html", "course_title": "Premiere Pro and After Effects: Enhancing Production Value"}, +{"course_link": "/Photoshop-tutorials/Design-Web-Working-PNG-8/162712-2.html", "course_title": "Up and Running with AppleScript"}, +{"course_link": "/Business-Business-Skills-tutorials/Writing-Email/151813-2.html", "course_title": "Shooting a High-Dynamic Range (HDR) Time-Lapse Video"}, +{"course_link": "/Business-Business-Skills-tutorials/Writing-Email/151813-2.html", "course_title": "Balancing Work and Life"}, +{"course_link": "/MySQL-tutorials/Up-Running-MySQL-Development/158373-2.html", "course_title": "iMovie 10.0.2 Essential Training"}, +{"course_link": "/MySQL-tutorials/Up-Running-MySQL-Development/158373-2.html", "course_title": "Up and Running with Behance"}, +{"course_link": "/SQL-Server-tutorials/Querying-Microsoft-SQL-Server-2012/156769-2.html", "course_title": "Dan Roarty's Realistic 3D Portraits: Start to Finish"}, +{"course_link": "/SQL-Server-tutorials/Querying-Microsoft-SQL-Server-2012/156769-2.html", "course_title": "Up and Running with Astute Graphics for Illustrator"}, +{"course_link": "/After-Effects-tutorials/Getting-Started-Stop-Motion-Animation/163241-2.html", "course_title": "Getting Started with Stop Motion Animation"}, {"course_link": "/After-Effects-tutorials/Getting-Started-Stop-Motion-Animation/163241-2.html", "course_title": "Revit: Family Curves and Formulas"}, {"course_link": "/Revit-Architecture-tutorials/Revit-Family-Curves-Formulas/148423-2.html", "course_title": "Persuasive UX: The Power of Self-Image"}, {"course_link": "/Revit-Architecture-tutorials/Revit-Family-Curves-Formulas/148423-2.html", "course_title": "Motion Graphics for Video Editors: Creating Animated Logos"}, @@ -47,4 +198,5 @@ {"course_link": "/Digital-Publishing-Suite-tutorials/Adobe-Digital-Publishing-Suite-Essential-Training/149122-2.html", "course_title": "Final Cut Pro X 10.1.1 Essential Training"}, {"course_link": "/Digital-Publishing-Suite-tutorials/Adobe-Digital-Publishing-Suite-Essential-Training/149122-2.html", "course_title": "Direct Mail Strategy"}, {"course_link": "/Visual-Studio-tutorials/Visual-Studio-2013-Windows-Store-Developers/157130-2.html", "course_title": "Building Web Services with Java EE"}, -{"course_link": "/Visual-Studio-tutorials/Visual-Studio-2013-Windows-Store-Developers/157130-2.html", "course_title": "Web Design Fundamentals"}] \ No newline at end of file +{"course_link": "/Visual-Studio-tutorials/Visual-Studio-2013-Windows-Store-Developers/157130-2.html", "course_title": "Web Design Fundamentals"}, +] \ No newline at end of file diff --git a/try_scrapy/pipelines.py b/try_scrapy/pipelines.py index 977ffbe..35c965d 100644 --- a/try_scrapy/pipelines.py +++ b/try_scrapy/pipelines.py @@ -6,3 +6,21 @@ class TryScrapyPipeline(object): def process_item(self, item, spider): return item + +import json + +class JsonWriterPipeline(object): + + def __init__(self): + self.file = open('output.json', 'wb') + + def open_spider(self,spider): + self.file.write("[\n") + + def close_spider(self,spider): + self.file.write("]") + + def process_item(self, item, spider): + line = json.dumps(dict(item)) + ",\n" + self.file.write(line) + return item diff --git a/try_scrapy/pipelines.pyc b/try_scrapy/pipelines.pyc new file mode 100644 index 0000000..2e58c1c Binary files /dev/null and b/try_scrapy/pipelines.pyc differ diff --git a/try_scrapy/settings.py b/try_scrapy/settings.py index 775eec5..ee1fc17 100644 --- a/try_scrapy/settings.py +++ b/try_scrapy/settings.py @@ -13,3 +13,8 @@ NEWSPIDER_MODULE = 'try_scrapy.spiders' # Crawl responsibly by identifying yourself (and your website) on the user-agent #USER_AGENT = 'try_scrapy (+http://www.yourdomain.com)' + +ITEM_PIPELINES = { + + 'try_scrapy.pipelines.JsonWriterPipeline': 800, +} diff --git a/try_scrapy/settings.pyc b/try_scrapy/settings.pyc index bdd84fe..1f59c35 100644 Binary files a/try_scrapy/settings.pyc and b/try_scrapy/settings.pyc differ diff --git a/try_scrapy/spiders/test_spider.py b/try_scrapy/spiders/test_spider.py index fff4ce0..8b0c59b 100644 --- a/try_scrapy/spiders/test_spider.py +++ b/try_scrapy/spiders/test_spider.py @@ -6,16 +6,21 @@ from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from scrapy.shell import inspect_response import urlparse,urllib -from scrapy import log +# from scrapy import log base_url=r"http://www.lynda.com" items=[] -log.start() +# log.start() + +def do_nothing(*args,**kwargs): + pass + class lynda_spider(CrawlSpider): name="get_lynda" # allowed_domains = ["dmoz.org"] start_urls=[urlparse.urljoin(base_url,"allcourses")] + def parse(self,response): sel = Selector(response) @@ -36,10 +41,10 @@ class lynda_spider(CrawlSpider): final_url=urlparse.urlunparse(parsed_url) print final_url - if int(parsed_qs["page"])<=4: - return Request(final_url, self.parse) + # if int(parsed_qs["page"])<=4: + # return Request(final_url, self.parse) - sel = Selector(response) + # sel = Selector(response) course_a=sel.xpath(r'//*[@class="course-list"]//li//a') # print course_a.extract() titles=course_a.xpath("text()").extract() @@ -52,7 +57,11 @@ class lynda_spider(CrawlSpider): # print titles[i].strip() # print links[i] print len(items) - return items + if int(parsed_qs["page"])<=4: + return Request(url=final_url) + else: + return items + # class NextPageLinkExtractor(SgmlLinkExtractor): # # allow_domains=[r"http://www.lynda.com/"] diff --git a/try_scrapy/spiders/test_spider.pyc b/try_scrapy/spiders/test_spider.pyc index 3188500..23388db 100644 Binary files a/try_scrapy/spiders/test_spider.pyc and b/try_scrapy/spiders/test_spider.pyc differ