# bhban_rpa: office automation examples that came out of a book

> bhban_rpa is the example code for a 2020 Korean book about finishing six months of work in a day, aimed at people who have never written Python and covering spreadsheets, images, macros and web crawling. The repository is organised by book part, and its usage terms are unusual: forking is allowed if you publish the fork, and commercial use is not.

**needleworm/bhban_rpa** — <6개월 치 업무를 하루 만에 끝내는 업무 자동화(생능출판사, 2020)>의 예제 코드입니다. 파이썬을 한 번도 배워본 적 없는 분들을 위한 예제이며, 엑셀부터 디자인, 매크로, 크롤링까지 업무 자동화와 관련된 다양한 분야 예제가 제공됩니다.

- Repository: https://github.com/needleworm/bhban_rpa
- Website: https://needleworm.github.io/bhban_rpa
- Stars: 1,154 · Forks: 1,129
- Language: Python
- License: not declared
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/needleworm-bhban-rpa

## Code that came out of a book, still laid out by book part

The repository is the example code for a book published in 2020 by Saeng Nung Publishing, on finishing six months of work in a single day through automation. The project description says the examples cover a range of automation subjects, from spreadsheets to design, macros and crawling, and it says plainly that they are for people who have never learned Python.

The directory layout follows the book's parts, and the names make the progression clear. There is a part on the basics of computer automation, a part on automation using macros, a part on automation using the internet, a part headed something along the lines of forget macros, headless automation is the way forward, and an open part X for material that does not fit the sequence.

That layout is the first thing to understand about the repository. It is not a library and not a tool. It is a set of numbered, self-contained scripts that a reader works through in the order the book presents them, and the directory names are the index into the book.

For a reader who does not read Korean, the structure is still useful, because it maps the curriculum, from the spreadsheet and file basics, through the macro approach, to the web, and finally to the point where the browser stops being the way you drive a site.

The project description lists automation, crawling, design, education, Python and RPA as its topics, which is an accurate summary of a repository that is a teaching artefact rather than a package.

## Shallow and wide, and the moment it clicks

The README gives separate study guidelines for different audiences, and the first one is a statement of the book's method. The book aims at shallow and broad acquisition of knowledge, with the goal of learning simple automations that produce striking and varied results, and it deliberately avoids explaining Python syntax in depth.

For beginners and non-specialists, the guidance is unusual and worth repeating. Rather than trying to understand the principles deeply, follow the examples and move on, and the point is to concentrate on the feeling of a certain surprise, the sense of this actually working. The rationale is that the macros provided with the book are easy to use, and that with them most of what an ordinary office worker does can be automated. The recommendation afterwards is to build one or two automations of your own, starting from something very simple and widening gradually, and the claim is that a couple of months of practice with the macros produces visible results.

That is a coherent pedagogical position, and it has a consequence for an adopter. The code is written to be followed, not to be read as an implementation of a principle. If you want to know why it works, the README says to buy the publisher's other Python book, and for self-learners who want depth it recommends that book as the next step.

The subtitle of the book is the promise in numbers, six months of work in a day, and the examples are the evidence for it.

## What a computer science student should read instead

The third set of guidelines is for computer science majors and people in related fields, and it is the most useful part of the README for a technical reader.

The book focuses on object-oriented programming with Python, and readers are told to watch how the main.py function is kept simple as the task being automated grows more complicated. The list of what to pay attention to, in descending order of importance, is the use of various libraries, the simplification of the main function, the method of designing an automation scenario, and the process of interacting with HTML using Python.

That list is a curriculum in itself, and it is a good one. Keeping main.py simple is a design principle that most beginners never meet, and the reason the book can show it is that the library ecosystem is doing the work. Designing an automation scenario before writing it is the difference between a script and a hack, and the fourth item, driving HTML, is where the crawling examples live.

For instructors, a fourth set of guidelines says the book skips almost all of the basic philosophy of programming, the Python syntax, data structures and algorithms, in the interest of practicality, and recommends introducing loops, conditionals and functions during a lecture to give the students a much deeper understanding.

So the repository has two readings, and which one you want depends on whether you are learning Python or learning automation.

## The macro library, and the turn towards headless automation

Two parts of the repository deserve more than a line each, because they represent two different philosophies of automation.

The macro part comes with its own library, pymacro, hosted separately at the same author's GitHub account and referenced from the dependencies section rather than installed with pip. That it is a separate project tells you something: the macro approach is a tool in its own right, not a helper inside the examples, and the author builds and maintains it. The macros are the part the beginner guidance leans on, and the claim is that learning them produces results within a couple of months.

The later part, the one whose title is roughly forget macros, headless automation is the way forward, is the conceptual turn. Macros drive an application through its own interface, which is convenient and portable, and which also depends on that interface existing and behaving. Headless automation drives the thing directly, without a visible application, which is faster and which is where the Selenium and crawling work leads.

For a reader, that arc is the most transferable thing in the repository. Start with what an office worker can do with the tools they have, and end up understanding why the browser-based approach stops scaling.

## The dependency list, and where it can trip you up

The dependencies section is organised by what each group of examples needs, which is a useful way to read it because it tells you what to install before you start a given part.

The base tools are Python 3, PyCharm as the editor, and Git Bash. The spreadsheet examples need pyexcel and pyexcel-xlsx, installed with pip install pyexcel pyexcel-xlsx. The image examples need NumPy, pip install numpy, and Pillow, pip install pillow. The macro examples point at the pymacro repository rather than to a pip line.

The web examples need Selenium with pip install selenium, plus Chrome and a matching ChromeDriver, and ChromeDriver is downloaded from the chromedriver.chromium.org downloads page.

That last one is the practical trap. A Selenium script that worked last month will fail today if the installed Chrome moved on and the driver did not, and the failure is a version mismatch rather than a bug in the example.

The dependencies are listed as documentation rather than as a requirements file, and the repository listing shows no such file at the top level, so installing them is a manual step that follows the part you are working on.

## The licensing is custom, and it is the strictest part

The copyright and licence section is unusually detailed for an example repository, and it is the part a reader should read before anything else.

Forks are permitted for personal use, on the condition that the forked repository is published as open source. Educational use is allowed for anyone who bought the book, and the same is said for anyone who took the FastCampus course of the same title, who may use the code freely.

Commercial use is where the terms get sharp. Including this code in a publication is prohibited, and the author asks to be contacted instead. Using the code in commercial work is prohibited in principle, and the stated principle is that every produced artefact should be published as free open source. Non-public or commercial use requires contacting the author, with a simple procedure offered for small businesses and sole traders to obtain free use.

The project licence field is recorded as unknown, so the README section is the governing text, and it is a custom licence rather than a standard one. For a reader who only wants to run the examples on their own machine, none of this is a problem. For anyone who wants to reuse a script in a product, the answer is written down plainly: you need to talk to the author first.

The author is Byunghyun Ban, and the profile link points at needleworm.github.io, which is also where the book materials live.

## Where this repository is the wrong resource

The first wrong-tool case is anyone who wants a library. There is nothing to install, no module to import, no API to call. The repository is a set of scripts, arranged by chapter, and the only supported way to use it is to read it and adapt it.

The second is a production automation project. The code is written for teaching, and the README says so directly, that the book skips the fundamentals on purpose. A script that has been explained without explaining why it works is a script you can run and modify but not debug, and production automation is mostly debugging.

The third is a reader who wants the principles. The README routes that reader to a different book, and it is right to. The examples here cover a lot of ground quickly, and the coverage of Excel, images, macros and Selenium is breadth rather than depth.

The fourth is a team that needs licensing clarity. The terms are written in prose, they differ by use case, they permit personal and educational use but restrict commercial use, and they require a conversation with the author for anything else. For an organisation that needs a standard open source licence it can point at, that is friction, and it is deliberate friction on the part of the author.

The repository is not archived and the last push was on 2026-08-26, so the code is still available and still current enough to run, but the material is tied to a 2020 book and to the tool versions of that period.

## Conclusion

Adopt bhban_rpa as a learning reference if you want to see office automation scripts written for beginners, or as a source of patterns for spreadsheet, image and Selenium work, and read the licensing section carefully before you copy anything, because the terms forbid commercial use and require forks to be published as open source. Do not adopt it as a library, since it is a set of example scripts rather than an installable package, and do not adopt it as a production automation codebase, since the code deliberately avoids explaining the principles underneath it. Before you rely on any example, check the dependency list, since the Selenium examples need Chrome and a matching ChromeDriver, and expect the Korean book to remain the primary explanation.

## FAQ

### What is bhban_rpa?

It is the example code for a 2020 Korean book, published by Saeng Nung, about finishing six months of work in a day through automation. The examples cover spreadsheets, design, macros and crawling, and are written for people who have never learned Python.

### How is the bhban_rpa repository organised?

By book part. The top-level directories are the basics of computer automation, automation using macros, automation using the internet, a part on moving towards headless automation, and an open part X for material outside the sequence.

### What does a computer science student get from bhban_rpa?

The README tells technical readers to focus on the use of various libraries, on keeping the main function simple as the task grows, on designing an automation scenario, and on interacting with HTML through Python. The book focuses on object-oriented programming with Python.

### Can I use bhban_rpa code commercially?

The README states that commercial use is prohibited in principle, that produced artefacts should be published as free open source, and that non-public or commercial use requires contacting the author, with a simple procedure for small businesses and sole traders. Forks for personal use are permitted provided the fork is published as open source.

### What do I need to install to run the bhban_rpa examples?

Python 3, PyCharm and Git Bash as the base tools, pyexcel and pyexcel-xlsx for the spreadsheet examples, numpy and pillow for the image examples, the pymacro project for the macro examples, and selenium with Chrome and a matching ChromeDriver for the web examples.

## Sources

- [Issues](https://github.com/needleworm/bhban_rpa/issues)
- [needleworm/bhban_rpa on GitHub](https://github.com/needleworm/bhban_rpa)
- [Project website](https://needleworm.github.io/bhban_rpa)
- [README](https://github.com/needleworm/bhban_rpa/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/needleworm-bhban-rpa
