fluffypancakes 0.1.5
Detect Phishing Websites using Machine Learning
Keywords: web-phishing-detection machine-learning

# Fluffy Pancakes

Fluffy Pancakes is a library designed to detect phishing websites. It uses Machine Learning to predict the output with an accuracy of 95.2%. 

*Note: Please bear with us for a few seconds to get the output since the library is computationally intensive. We felt bad for making you wait, so we have included a progress bar that you can enable to see the percentage of progress and also see the time taken for execution. Also note that the library heavily depends on a stable internet connection to function its best and to obtain the results. So, the quicker your internet connection is, the faster your results will be :).*


# Usage

- #### Install the module
    ```sh
     $ pip install fluffypancakes
    ```

- #### Grant Permissions
    Use `sudo chmod 777` to give permissions to the **<System Python File PATH>/site-packages/fluffypancakes/dependencies/** folder.

- #### Import 
    ```py
     $ from fluffypancakes import fluffypancakes as fp
     ```

- #### Call the function and Pass the URL 
    ```py
     $ result = fp.serve('<website URL>', progressBar=True)
     $ print(result)
     ```

- #### Defaults
     The default value of the progressBar is 'True'. However, the option can be enabled or disabled with *boolean* 'True' or 'False' respectively.


# Output
> -1 : Legitimate Website

> 1 : Phishing Website

> "The URL entered is either Invalid or the Host is unserviceable" : For invalid URLs and Unservicable Hosts


The output is predicted with an accuracy of 95.2%. It is not a definitive classification. 

# Dependencies

Python dependencies:

- beautifulsoup4>=4.9.0
- numpy>=1.17.2
- pandas>=1.0.4
- python-whois>=0.7.2
- requests>=2.23.0
- scikit-learn>=0.21.3
- selenium>=3.141.0
- sklearn>=0.0
- tqdm>=4.46.0
- urllib3>=1.25.8

Installing this module will install all the dependencies automatically.

Additional dependencies:

- Chrome Driver : You'll need a chromedriver in order to complete execution of the code. You can get the file from [here](https://chromedriver.chromium.org/). Unzip and add the "chromedriver.exe" (Windows) or "chromedriver" (Linux and MacOS) file to the PYTHONPATH environment variable.

    Well, that's a lot of work right? We know! So, we have included the current stable version of the chromedriver in the [dependencies](https://github.com/suhasrsharma/FluffyPancakes/tree/master/dependencies) folder of the repo.

    The code automatically detects the OS (Windows, Linux Based and MacOS) and picks up the respective chromedriver file.

    **You're all set to go.** Although, if, by any chance, you face an issue, just add to PYTHONPATH, the directory structure to where you downloaded this repository.


# Development

Want to contribute? Great!

FluffyPancakes uses http requests, bs4, selenium, and of course, Machine Learning, and a lot more libraries. 
You can find the GitHub repository [here](https://github.com/suhasrsharma/FluffyPancakes).


Make sure you use the following command to get the exact versions of pytest and twine:

```sh
$ pip install -e .[dev]
```

You can find the sample test case [here](https://github.com/suhasrsharma/FluffyPancakes/blob/master/src/sample_test.py).



# Development Status
##### Development Status :: 4 - Beta
##### Operating System :: OS Independent

# License
### MIT
---

In collaboration with the [Center for ISFCR](https://www.isfcr.pes.edu/) at [PES University](https://www.pes.edu/), Bangalore, India. Special thanks to [Mr. Prasad B Honnavali](https://faculty.pes.edu/p10020) (Director, Center for ISFCR) for his constant support and mentorship.