Crawling with OpenWebSpider

 

Spiderman, Where are You Coming From Spiderman?

Sometimes you just need the right tools to help you do what you want. This is especially true when the tool you are limited to has a bunch of restrictions. I ran into this particular problem the other day when I wanted to "spider" a website to find out all its possible URLs being served, including the URLs that are ignored by the usual "robots.txt" file sitting on the web server.

I actually had to find a way around the "robots.txt" file for a web site that was blocking web crawlers from finding most of the URLs that were available. Imagine a spider that is crawing through a tunnel, looking for all the tasty bugs - and there is a giant boulder in the way providing the biggest obstacle possible to getting those bugs it wants to feed on.

My requirements for a spider alternative (if possible) were:
  • free
  • no lengthy configuration
  • a GUI
  • a way of ignoring the "robots.txt" file's instructions
  • the search results in a spreadsheet file
  • able to run on Windows (and Linux too, if possible)
After some googling, I experienced true frustration at only being able to find command-line libraries or gigantic, enterprise-level Java applications. Then I came across an open source project named OpenWebSpider. The project's website is a bit confusing but it's worth persevering through.

OpenWebSpider is a neat application written in node.js, which crawls a website and saves its results to a database that you nominate. The project seems to be reasonably active and at the time of writing is hosted on SourceForge. To get the application going in Windows, first you'll need to do a few things.
 

Install WAMP Server

OK, so the database I wanted to store my results in was MySQL. One of the best ways to get this (and other nice bits) in Windows is to install the handy WAMP server package. (However, the providers do warn you that you might first need a Visual Studio C++ 2012 redistributable package installed.)

One you do get WAMP Server installed, you'll have a nice new "W" icon in your system tray. Click on it, then click Start All Services.
 


You can view the MySQL database in the phpMyAdmin interface, just to be nice and friendly. In your browser then, go to:
http://localhost/phpmyadmin

Note: if you have any troubles with phpMyAdmin, you might have to edit its config file, usually in this location:
C:\wamp\apps\phpmyadmin4.x\config.inc.php

In phpMyAdmin, create a database to store your spidering results (I've named my database "ows"). Also create a user for the database.
 

Install node.js

Node.js is one of the most wonderful Javascript frameworks out there, and it's what OpenWebSpider is written with. So go to the node.js project site, download the installer and run it. Check that node.js is working OK by opening a command shell window and typing the word "node".
 
 
 
 
 
 
 
 

 

Get OpenWebSpider and Create the Database's Schema

Download the OWS zip file from Sourceforge. Unzip the file. Inside the project folder, you'll see a number of files. Double-click the "openwebspider.bat" file to launch the application in a little shell window.
 












Then, as the readme.txt instruction file tells you:
  • Open a web-browser at http://127.0.0.1:9999/
  • Go in the third tab (Database) and configure your settings
  • Verify that openwebspider correctly connects to your server by clicking the "Verify" button
  • "Save" your configuration
  • Click "Create DB"; this will create all tables needed by OpenWebSpider

Now, check your database's new tables in phpMyAdmin:
 
 

 Start Spidering!

Go to the OWS browser view, ie. at http://127.0.0.1:9999/. Click on the Worker tab and alter any settings you might thing useful. Enter the URL of the site you want to crawl in the URL box (and make sure "http://www" is in front if needed). Then hit the Go! button.
 
 
You should then be bounced to the Workers tab. Here you'll get see real-time progress of the site crawling as it happens. You can click on the second-tier History tab if you miss the crawler finishing its run.

View Your Results

In phpMyAdmin, click on the pages table and you should automatically see a view of the crawling results. You might not need all the columns you'll see, in fact my usual SQL query to run is just something like:
select hostname, page, title from pages where hostname = 'www.website.com';
 
 


And of course, anyone with half a brain knows you can export data from phpMyAdmin as a CSV file. Then you can view your data by importing the CSV file into a spreadsheet application.
 
 
 

Ignore Those Pesky Robots

Please note, the next instruction is for the version of OpenWebSpider from October 2015. It probably is outdated for the latest version now.

One of the requirements was that we could bypass the "robots.txt" file, which good web crawlers by default must follow. What you'll need to do is close OpenWebSpider, and just edit one source code file. Find this file and open it up in a text editor: openwebspider\src\_worker\_indexerMixin.js.

It's a Javascript file, so all you need to do is comment out these lines (with // symbols):
 // if (!canFetchPage || that.stopSignal === true)
        // {
            // if (!canFetchPage)
            // {
                // msg += "\n\t\t blocked by robots.txt!";
            // }
            // else
            // {
                // msg += "\n\t\t stop signal!";
            // }

            // logger.log("index::url", msg);

            // callback();
            // return;
        // }

Re-save the file. Then launch OWS again, and try another search. You'll usually find the number of found URL results has gone up, since the crawler is now ignoring the instructions in the "robots.txt" file.
 

Everyday Use

It's a good idea to make a desktop shortcut for the "openwebspider.bat" file. So, if you want to use OpenWebSpider regularly, what you'll need to remember to do each time you need it is:
  • Start up the WAMP server in the system tray
  • On the desktop, double-click the "openwebspider.bat" shortcut icon
  • In a browser, go to localhost:9999 (Openwebspider) to run the worker
  • In a browser, go to localhost/phpmyadmin to see your results


Happy spidering!

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

[출처] http://scriptsonscripts.blogspot.kr/2015/10/crawling-with-openwebspider.html

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
638 프레임 워크 비교 : Deeplearning4j, Torch, Theano, TensorFlow, Caffe, Paddle, MxNet, Keras 및 CNTK 졸리운_곰 2018.02.18 100
637 딥러닝 - 초보자를 위한 컨볼루셔널 네트워크를 이용한 이미지 인식의 이해 file 졸리운_곰 2018.02.18 95
» Crawling with OpenWebSpider 오픈웹스파이더 robot.txt 무시 file 졸리운_곰 2018.02.15 86
635 포토샵 한글 영문 메뉴 고민 끝, 완벽한 비교 정리 ! 졸리운_곰 2018.02.11 589
634 PERT(Program Evaluation and Review Technique)/CPM(Critical Path Method) Pert / Cpm 자료 file 졸리운_곰 2018.02.07 58
633 의사결정모형(합리모형, 만족모형, 점증모형, 혼합모형, 최적모형, 쓰레기통모형, 공공선택모형) 졸리운_곰 2018.02.07 119
632 GA와 R을 활용하여 브랜딩 광고 효과를 정확하게 측정하기 file 졸리운_곰 2018.02.06 84
631 구글 애널리틱스 데이터를 R로 불러와서 분석하기 file 졸리운_곰 2018.02.06 86
630 비트코인 원리의 이해를 돕는 간단소스 및 설명 : A peek under Bitcoin's hood file 졸리운_곰 2018.02.02 117
629 비트코인 채굴 작업의 원리 졸리운_곰 2018.01.23 189
628 [Eclipse] SVN Working copy xxx locked 문제해결 방법 졸리운_곰 2018.01.19 83
627 계량 경제학 자료 ebook file 졸리운_곰 2018.01.04 87
626 계량 경영학 자료 ebook file 졸리운_곰 2018.01.04 88
625 [정보] VS Code를 웹에서 사용할 수 있는 오픈 소스 Web Editor 졸리운_곰 2017.11.16 428
624 블록체인이 주류 기술이 될 수 없는 7가지 이유 file 졸리운_곰 2017.11.15 99
623 쉬운 블록체인 코드 예제 file 졸리운_곰 2017.11.13 221
622 엑세스 VBA로 웹 스크래핑 : Web Scraping by Access DB : 오류교정 file 졸리운_곰 2017.11.11 80
621 Awesome-crawler 웹 크롤러 / 스크래퍼 오픈소스 리스트 졸리운_곰 2017.11.07 483
620 [해외칼럼] 스타트업을 위한 온라인 마케팅 방법 file 졸리운_곰 2017.11.07 107
619 스타트업이 할 수 있는 16가지 마케팅 방법 file 졸리운_곰 2017.11.07 122
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED