완전 쉽게 파이썬으로 텍스트 및 이미지 크롤링하기 | 완성형 서비스 만들기 1강

완전 쉽게 파이썬으로 텍스트 및 이미지 크롤링하기 | 완성형 서비스 만들기 1강


You can see the files are well stored from 1st to 40th. Save and you can see the photo data downloaded like this. Hello. This is JoCoding, an easy coding channel that anyone can learn from. As I announced on the community, starting with this video, we’ll work on a project that creates a complete web and app service, launch, market, and monetize it, The service we’re going to make is an web and app service called, AI’s My Animal Look-alike Test. Using the animal look-alike celebrities for machine learning, this service will be able to analyze your uploaded photo and determine what is your animal look-alike, which you can share on your SNS. For the first step, we’ll gather photo data of celebrities with animal look-alikes. But it would take a long time to search and download individual photos. So we will use a technique called crawling. Crawling is a technique that automatically gathers only the information we want from the Internet. Even with basic crawling knowledge, you can make many practical and fun projects. For example, if you crawl a school or an office’s meal plan, you can create a service that provides today’s menu. You can also make a service that allows you to pick and choose news by gathering news on specific topic from various news websites It can be used to make so many different services. The principle behind crawling is very simple. All we have to do is load the site we want to get information from, find the information we want there, and write the code to get that information. In crawling libraries a you can use any language, but let’s practice using Python, which is popular these days. I’ll use an easy explanation so even if you don’t know Python, please keep watching. Let’s start with the most basic part of crawling. Let’s look at the screen. On today’s lesson, we will learn about crawling text and images. First of all, we’ll learn the principles by simply setting up a development environment and starting with a simple example. Then we’ will apply it and crawl Naver real-time search ranking, and save it as a text file. The last highlight of the video is… We will crawl hundreds of animal look-alike celebrities photos by using an easy-to-use library, with the least amount of codes. We’ll learning useful functions so keep watching. Today we are going to crawl using Python today.. In order to do so, we need to install Python and Python related libraries on my computer. But it can cause version collision when working on other projects if you just install it on the computer. So normally we go through a complex process of forming a virtual environment and installing there. That would be a hassle. So we will use Cloud IDE that we used on the Ruby on Rils lesson last time. Cloud IDE provides a virtual machine with hidden development environment. No additional language installation process is required, and when you do another task, you can create a new virtual machine and work there. so there is no risk of version collision. Recently I am working as an evangelist with support from Cloud IDE. If you try it yourself, you will know that it takes quite a while to configure a local development environment. Using this cloud-based IDE service can save you a lot of time and make it easier to focus on development. Also, Cloud IDE is a decent cloud IDE service that can be used for free.
If you are uncomfortable, you can use other IDE or local environment. This is the official homepage of the Cloud IDE. The address is ide.goorm, io and I will leave it in the video. After registering, press the Dashboard button here. Click the Create New Container button at the bottom. This is where we set up our environment for containers,
the virtual machines we will use. We will be provided a computer that we can use according to
what we write in the form. So I’ll fill out the form. We are going to crawl so name will be crawling, and the area is Seoul.
If the availability is Public, others can come and see.
Private is only for me. We’ll open it as Public. You can just leave the template as is, publish to Not used, and
pre-install the software stack, which you will install in the virtual environment. Because we will use Python, we can check Python and press the Create button without changing anything else. Once the container is created, click the Run Container button. Now we are in a virtual machine environment with Python installed. To briefly explain, the screen contains a built-in browser such as Windows Explorer and a command input window at the bottom. If you open the file, you will see a screen to edit the code. Where the screens needed for coding are in one place is called an integrated development environment, IDE. And here, index.py is a basic file created with Python code. Let’s check if the Python code runs well here. To do this, enter the python index.py file name in this command prompt and you will see that ‘hello python’ is executed. Then we can write the crawl code here. We will use a library called Beautiful Soup for this crawl. Beautiful Soup is a Python package, or Python library, for parsing HTML and XML. It’s a very popular library, so there are lots of documents to refer to. We are going to enter Wikipedia here. Here is an example code with explanation. Let’s use this as it is. Copy the whole thing and paste it into index.py. Save it and let’s try running it. To execute, press the upper button on the keyboard to display the previous command and press enter to execute. But here is the Module Not Found error. This is because, it couldn’t load this module called bs4, right here, which is caused by not having the Beautiful Soup 4 version installed. The installation is very simple. Type ‘pip install bs4’ into the command prompt and it will automatically download and go through the installation completely. For those of you who are unfamiliar with the concept of installing packages, if you need to produce a presentation when using a Windows PC, you download and install the PPT. And when we have to write a document, you download and install Word? Like so, on Windows, you can install programs through these installation files and use the functions you want. Similarly, if you think of Python as a computer, there are libraries available for Python. When installing and writing a library to be used for crawling and analyzing data, install and use Pandas. And when you install and use these pre-made functions and programs like this, in the case of Python, all you have to do is download and install the program automatically using the Python package manager, pip, by typing ‘pip install package name’ into the command. This concept is not unique to Python, but is present in all languages. The Ruby Gem that was covered in the last Ruby on Rails video has the same concept, and so is npm in Node.js. When we use a Windows computer, we don’t just use the basic functions of Windows, but also we can implement the same function when writing a program in a language, just like installing an external program. If you have a library, it’s much quicker and more efficient to get it. Now that the installation is complete, let’s run it again. Take the previous command and press enter. Now you can see the result is good. Let’s look at the code line by line how this result is obtained. The second line above it is not important code and the code still works even if you delete it. So I’ll delete it. The next two lines of code load the library. from b4 means we are importing a library called import Beautiful Soup, Beautiful Soup from bs4 that we just installed. This library can then be loaded from anywhere at the bottom to use
the features of Beautiful Soup. The second one also means that it will take a feature called urlopen from urllib.request and write it below. You don’t have to memorize it, just use it. Then comes the full-fledged code. urlopen using the urlopen loaded above means that it opened this page. So it’s going to enter this address and put this in a place called respose. If you are new to Python, you may not be familiar with the with and as syntax. If you change it a little more intuitively, it’s contained here, so response is urlopen, if you got this, this is the same function. You can delete this and use this. I’m going to press the shift tab and put in one space. This is a little more intuitive. It means opening the url at this address and putting it into this variable called response. The next line is to put the response we made earlier using the function called Beautiful Soup and analyze it using html.parser. give it to a variable called soup. The next line uses a for statement, a loop used in Python, to find all the a tags in this soup and put them in a variable named anchor. Then this: It’s a sentence that repeats after you indent one space. Of this anchor, one of these anchor, get(‘href’) or address, the href of a tag are these addresses. It means get addresses and print them. So let’s go back to this site and see how this code works again. We’re actually in this url we created earlier. If you open the developer tools by pressing the f12 button, you can see the html code like this. If you are not familiar with the concept of html, please refer to the last html lesson 1 video. Here’s some code that uses .findAll (‘a’)’ to get thetag, which brings the linktag, an’d print out the “href” part. If you look at the code again, you can put the url in the response and make a respone into soup using Beautiful Soup. Then find all the .findAll (‘a’) a tags among these soups and looped through a tags one by one and outputted href. So as you saw before, you can see that the address part is printed all over here. How do you understand this flow now? So let’s do something else with this. As an example, let’s create an example that crawls NAVER real-time search ranking. To do this, you need to pick only the live query part from the entire Naver site and import only the text. You need to figure out and identify what this part looks like and choose to bring it here. To do this, press f12 and use ctrl + shift + C to figure out what the rule of the search ranking code looks like. If you look like this, here’s the main battlefield here, here’s the second place, and the third place is inside. Here is the 3rd place and you can see it progressing like this. There are many ways to find a pattern. If you look at these terms, they are all wrapped intags. However, if you get all thetags and print them out, thetag will not only be this one, but there may be atag at this number or elsewhere. So we need to narrow it down so that only that part is selected. Then, if you look at the features with more search terms, you can see that the class is all “ah_k”. So if you get& class=”ah_k”, it’s likely all of them are search terms. So let’s write this in code. If you load Naver instead of Wikipedia in the url part, you can import ah_k frominstead of findAll (‘a’). Then, if you are not sure about this function that you get from this soup, write the function by referring to the official document. You can enter the official documentation site by searching Google for Beautiful Soup. In the official documentation, there are various ways to select html elements using Beautiful Soup. If you look at the concept that we often use as a select, we use a function called .select a lot when we look inside CSS selectors. This gives you a lot of choices on how to choose. For example, if you put soup.select followed by tiitle, that is, the name of the tag, you can select as the name of the tag. Or you can select p: nth-of-type (3). If you’ve heard the last CSS lessons, you would know, it’s the same syntax for deciding which elements to select and decorate in CSS. For example, here it says select (“body a”), which is the CSS syntax to select thetag among the descendants inside thetag. And this is the same for Beautiful Soup So what we want to use is the part we chose it with CSS, so let’s copy this and change it to class instead of this part of selecting thetag, and instead of sister we have to choose ah_k. And if you put a span in front of it, it means to select. And since there is no hrefwhen printing, I will delete this part and print it out. If you save and run it, you can see the search rankings was loaded well. It would be good to only extract content from it. To do this, I searched to see how to use .get, which is the function I used earlier. I can pull out only the href part, and there is a function called .get_text (). Copy this, paste it after the anchor, and save it. Now you can see that the text only appears when you run it. I’ll add the rankings here to make it look more nice. You can say i=1 and add i. Since this is a number, you can’t do numbers + letters, change it to a letter and add. Then increase the size of i by one and now the rankings from 1st will be written down. If you run it, you can see that the search ranking has been crawled from 1st to 40th. In addition, we will not only show this on the terminal screen, but also save it directly to a text file. To do this, as we always do, we don’t just memorize all the code, but search for the language name + what we want to do. Here we are going to write python, and we are going to write a text file. So, if you search for write text file, you can find the relevant documents. If you go into anything, the file writing example is down here. If you write code like this, it comes out like this. Copy and paste this example code into the bottom of the code you have written. If you delete the comment and look at the code: open a new file here, run the for statement, and this is the line of data. It’s a simple piece of code that keeps writing this data to a file and then closes it after the data has been written. To apply this as it is, write this open file at the top of the for statement. We’re not in the c drive, but in the cloud, so let’s delete it and make it here right under this folder. And the for statement can be run as it is, and the data we print can be used instead of print. Similarly, f.write (data) can proceed the same. If you do the same and close as well, you move the code here. When you save and run the code as it is, a file is created instead of being printed to print. Search rankings have been coming out of here, but it’s all stuck in a mess. In that case, if you put ” n” here. This is a line break So it would be neater to make it a new line by automatically write a line break and recognize this character. If you save it and run it again, you can see that the files are saved well from 1st to 40th because of the line breaks. You can crawl the image in a similar way. In order to crawl an image, we need to find the rules for the image addresses from the images with the urls retrieved by this particular search, and collect these image addresses and save them as if we had saved a text file. But don’t you think: Crawling an image for a particular query is probably something that many people have already done and many others will have to do. So why didn’t someone make this work and put it in a library? If you already thought so, you are deeply versed in coding. In coding, if you think ‘Oh, this must have been done already.’ then someone has already done it. So there are obviously people who have that code or have it even made it a library. So finding and using these things can save you a lot of time. If you search for language names and behaviors like this, the first library called google_images_download has already been created. Using pip install google_images_download, we learned, using this library makes downloading images incredibly easy. First pip install, copy and paste this statement that installs the library into our terminal. Then the library will be downloaded and installed automatically. The installation is complete. Then this also has here, examples, the examples. I’ll bring this as it is. I’m going to import this code sample as is. Right-click>New File to create a new file. I’ll create a google.py file. And paste the code you copied earlier. Save it and since the library is installed, let’s run it. When you run google.py, it automatically runs something. After waiting, the code has finished running. When I went to the download folder, I downloaded 20 pictures of Beaches, Polar bears, and baloons, according to the three keywords in arguments was separated into each folders. If you open it up, you can see the beach photo was downloaded well. If you open the Polar bears, the polar bear photo was downloaded well. In this way the correct balloon image was well downloaded. Then you can just change this keyword here and change the limit and the number of images. Coding is like this. If you use a well-built library, you can literally copy and paste it and use it right away without having to change any code. This is a list of representative animal look-alike celebrities divided by the five animals I found while googled. Let’s download their photo data all at once using that code. The names of the celebrities of the animals are listed and separated by commas like the example. And the limit, which was limited to 20, was increased to 50. This will automatically accumulate 50 photo data for every celebrity here. And in the documentation there is a page called input arguments. Here you will find information on the various options available for the library. We use the teachablemachine, so if you search for the extension here, you have the option of specifying a file extension here with format, such as jpg or gif so that you can download only the extension you want. For example, when I download a gif here, the teachablemachine doesn’t recognize it. So we can safely specify only jpg files so that we can only receive them. Then I’ll copy and put the format to import inside arguments and set this as jpg Save and run the code. It’s finished. The rest has been received, but sometimes you can’t download because of an error. In such a case, if the download fails for the keyword, just enter the entertainer’s name and run it again. You can see that a new folder has been created and the downloading went well. To save these downloaded pictures to your local computer, right click on Download>Download File>ZIP and the entire file will be compressed and downloaded to our local computer. Download is going well. If you unzip it after downloading, you can see the picture data is received well. Did you enjoy the video? If it helped, please subscribe, like, and turn on notifications. It encourages the video production. See you next time with more informative videos. Thank you.

100 comments

  • 차분히천천히

    이걸로 https 규제한 바보들도 막을 수 있을까요 그리고 성인사이트 우회 가능할까요

  • 파이선 crawling 문의 : 강남 성형외과 원장 크로링가능한가요 어떤 코딩으로 해야하나요

  • 2강 업로드는 언제인가요???

  • [쇼핑중독] 이카메(leekame)

    플루터 공부하려고 하는데 이거보다가 못봄. 젠장. ㅋㅋㅋㅋㅋ 플루터는 안하시나요? 어플 2달안에 하나 만들고싶은데….

  • 👍👍👍너무 재밌게 봤어요^^ 감사합니다

  • 온라인에서 도커(docker)처럼 개발환경을 쉽게 쓸 수 있는 곳이 있다니… 감사합니다.

  • 델라이프 Dellife

    Python 입문 영상으로 본건데 너무 이해가 잘 되고 쏙쏙 들어와요! 좋은 영상 만들어주셔서 감사합니다 🙂 2편 기다릴게요~

  • 대단쓰…

  • 우연히 보게되었는데 정말 쉽게 잘 설명해주셨습니다! 구독하고 갑니다!

  • 국가니카라과

    파일이나 디렉러리 생성을 못하는데 어떻게 해결할 수 있는지 도움 부탁드립니다. 실행하면 파일을 열 수 없다며 [Errno 2] No such file or directory 메시지 나타납니다.

  • 완전깔끔한데요???ㅋㅋ

  • 고민이 있습니다. 앱 사업을 작년까지 했었으나 외주업체와 문제 때문에 너무 스트레스 받아서 결국 앱 사업을 정리하고
    혼자서 앱 공부해서 제작해보고자 공부한지 2달이 다되어 갑니다.
    공부하다 너무 지쳐서, 여러 영상들을 보니 일단 실습삼아서 만들어 보는게 중요하다. 그래야 내꺼가 되는거다라고 말씀하셔서,
    실습위주로 지금 간단하게 웹페이지를 하나씩 만들어 보고 있습니다.
    근데 이걸 만들다보니, 로딩도 문제가 생기고, 디자인도 너무 허접하고, UI도 허접하고, 오류는 말할것도 없고,
    더군다나 내가 원하는 기능은 1프로도 구현하지 못하고 있고, 한마디로 상품성이 1도 없다는 생각이 들고,
    이 모든 기능들을 제대로 끌어와서 제대로 상품성 있는 앱을 만들려면 최소한 1년 이상은 제대로 공부를 해야겠다는 생각이 문득 들더라구요.
    아니 1년 공부해서 안될수도 있겠다라는 생각이 들더라구요.
    그래서 이럴바에는 여기서 공부를 멈추고 다시 제대로 된 외주업체를 찾아서 의뢰를 하는게 더 낫지 않을까라는 생각도 듭니다.
    제가 1년정도 공부해서 제대로 된 앱을 만들수 없을바에는 말입니다.
    차라리 그 시간에 저희 앱에 입점할 업체들을 영업하는게 맞지 않을까라는 생각도 들구요.
    답답한 마음에 주저리해봤습니다.

  • 저만 안되나요?

  • 18:04 갓명언 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

  • 안녕하세요 조코딩님! 언제나 좋은 강의 감사드립니다

    14분 23초에서 저장 후 실행을 하면

    조코딩님 결과처럼 네이버 검색 순위를 불러와야 하는데

    [email protected]:/workspace/crawling# python index.py 를 실행하면

    [email protected]:/workspace/crawling# python index.py

    [email protected]:/workspace/crawling#

    순위가 나오는 게 아니라 위처럼 아무런 반응이 없습니다 ㅠ

    영상 내부랑 코드도 완전 똑같은데 뭐가 잘못된 지 혹시 아시나요?

    번거롭게 해드려 죄송합니다

  • 14분 가량에서 완성된 문장을 돌리니 저는 결과값이 없다고 나오는데 혹시 뭐가 잘못된 걸까요?
    print(soup) 해서 보니 안에 ah_k가 들어간 문구가 전혀나오지 않네요

    from bs4 import BeautifulSoup

    from urllib.request import urlopen

    response = urlopen('https://www.naver.com/')

    print(response)

    soup = BeautifulSoup(response, 'html.parser')

    print(soup)

    for anchor in soup.select("span.ah_k"):

    print(anchor)

  • 파이선 쉽게 알려주시는거 같아서 좋아요! 영상 감사합니다.

  • 조코딩 JoCoding

    [※ 네이버/구글 업데이트로 현재 영상 속 방법으로는 불가능해졌습니다 ※]
    원래는 urlopen을 수행할때 검색어가 포함되어 있어서 바로 가져오면 됐지만, 이제는 페이지를 다 로딩한 후 검색어를 동적으로 불러오니 위의 코드로 가져오는 것은 불가능합니다.
    따라서 이제는 브라우저를 모방하는 selenium 등을 추가로 사용해야합니다.
    추후 영상을 통해 추가 설명드리겠습니다. 우선 아래 selenium 크롤링 관련 설명이 잘 되어있는 블로그 첨부드립니다.
    Window: https://beomi.github.io/gb-crawling/posts/2017-02-27-HowToMakeWebCrawler-With-Selenium.html
    Ubuntu(goormIDE): https://hoony-gunputer.tistory.com/48

    추가로 daum(https://www.daum.net/)은 문제 없이 동작하니 다음에서 연습해보시는 것도 좋을 것 같습니다. 단, 다음은 검색어가 여러군데 분포해있어 여러개의 값이 나올 수 있는데 모바일 다음(https://m.daum.net/)을 이용하시거나 아래와 같이 좀 더 구체적으로 하나를 잡아주시면 똑같이 따라하실 수 있습니다.
    for anchor in soup.select(".hotissue_builtin .rank_cont:nth-child(1) span.txt_issue"):

    구글 이미지 검색에서도 최근 업데이트가 있어 라이브러리가 잠시 막혔습니다.. 따라서 해당 라이브러리가 새로운 구글 검색 방식에 맞추어 업데이트가 되기 전에는 재대로 동작하지 않을 것 같습니다. 아래는 관련 이슈가 담긴 내용입니다.
    https://github.com/hardikvasa/google-images-download/issues/280#issuecomment-555182389

  • Amazing….

  • find_all 을 select 구문으로 바꾸면 작동을 안해요
    오류뜨는것도 아니고 그냥 실행시키면 아무일도 안일어남

  • 코딩이나 프로그래밍, 개발자 관련 네이버 카페나 커뮤니티 추천해 주실수 있나요??? 정보글 공유하고 이것저것 더 배우고 싶어요!

  • 요근래 본 코딩 영상중에 제일 핵심적인 내용으로 도움이 많이되었네요

  • Python 처음 설치하여 써봤는데 강의 넘 좋습니다. 구글이미지 다운로드까진했는데, 더블클릭해도 이미지 파일이 안열리고, Zip 파일로 다운로드해도 완료메시지는 나오나 제 로컬폴더에 없네요 ㅠㅠ

  • 영상과 설명 완전 잘 만드셨습니다.>! 구독이라 써있는 빨간 버튼에 자연스럽게 손이 가는데요 ^__^

  • 좋은 영상 감사합니다!!

  • 정말 알차고 친절하고 쉬운 설명입니다. 수십년전 꺼졌던 코딩의 열망이 다시 불타오르네요!!

  • 좋은 프로젝트네요

  • 항상 잘 보고 있습니다 감사합니다 🙂

  • 비전공자도 공부를 하면 IT와 인공지능 계열의 진로를 꿈꿀 수 있을까요? 취직을 미루고 코딩과 IT쪽의 공부를 한다고 하더라도 넘쳐나는 쟁쟁한 인재들 사이에서 제가 경쟁력을 확보할 수 있으리라는 보장이 없다는 것을 알면서도 알아갈수록 너무 배워보고 싶고 만들어보고 싶고 그러네요. 조금 더 일찍 알았다면 좋았을텐데 나이도 많고 머리도 나쁘고… 인생 잘못 살았다… 공부 열심히 할걸…

  • 해외구매대행 공대생 대표

    으아 감사합니다 조코딩님 파이썬 공부중!!!

  • 너무나 유익합니다 감사합니다

  • 이분 조(올라잘하는)코딩

  • 간단히 알려주는건 좋지만 그러느라 오개념 알려주시는거 좀그러네요

  • 네이버는 못했지만 뒤에건 완료 ^^
    2강 기다립니다~

  • 네이버는 못했지만 뒤에건 완료 ^^

  • 잘못 셜명된 부분이 있네요. bs4.Beautifulsoup은 Class이며 Function이 아닙니다.

  • 조코딩님 화이팅!! 정말 강의도 재밌고 난이도 대비 아웃풋이 굉장합니다. 가성비 좋은 강좌네요. (근데 키보드 어떤거 쓰시나요? 소리가 중독성이 있네요;;)

  • 구글 코랩 사용중인데요 keyword에 사람을 너무 많이 써서 코드가 길어지면서 EOL while scanning string literal이 뜨는데 이건 어떻게 해결하나요?? 줄바꿈 했더니 EOL while scanning string literal이 떠요..

  • 너무 쉽게 설명되어 있어서 체험해 보기가 너무 좋았습니다. 네이버 대신 다음으로 변경해서 실습해 보세요.

  • 그렇게 그는 ㄹㅇ로 1줄에 모든 코드를 넣게 되는데…

  • 안녕하세요 조코딩님, 3일 전부터 영상을 보며 완전한 비전공자지만 소프트웨어/IT쪽으로 꿈을 키워나가는 대학생입니다. 현재 22살이지만, 학부 생활을 하며 조금씩 공부하면 제가 원하는 곳(S사^^;;)로의 취업이 시간적으로 가능한 지 여쭙고 싶습니다. 코딩에 이제 막 발을 디딘 단계로, 어느 정도와 얼마나 많은 시간을 투자해야 유연하게 다룰 수 있을지 감이 오지 않고, 올해 3학년으로 올라가면서 미래에 대한 고민이 많아져 질문 남겨드립니다. 한 가지 확실한 건 지금까지 배워왔던 그 어떤 것보다 재밌게 학습중입니다. 감사합니다.

  • 조코딩님 덕분에 코딩이 너무 재미있어요!!!

  • 내용이 바로 바로 따라할 수 있는 정도라 쉽네요, 감사합니다. 새해 복 많이 받으세요

  • 우미::코딩 영상

    영상퀄리티가 제대로네요.. 대단하십니다.

  • 정말 고맙습니다!!

  • 조코딩님 말한것처럼 네이버에서는 힘들고 다음에선 가능하네요..
    일단 저는 이렇게 수정해서 해봤습니다.

    from bs4 import BeautifulSoup
    from urllib.request import urlopen

    response = urlopen('https://www.daum.net/')
    soup = BeautifulSoup(response, 'html.parser')
    for anchor in soup.select("span.txt_issue"):
    print(anchor.get_text())

  • 지금 현재
    아래 코딩으로는 네이버 실검 결과가 안나오네요
    (이 코딩을 응용해서 다음 실검 결과를 뽑아보면 잘 나옵니다)
    네이버 쪽 문제일까요?

    from bs4 import BeautifulSoup

    from urllib.request import urlopen

    with urlopen('https://www.naver.com') as response:

    soup = BeautifulSoup(response, 'html.parser')

    for anchor in soup.select("span.ah_k"):

    print(anchor)

  • 코딩 영상을 다본건 처음이네요. 쉽게 설명해주셔서 좋습니다~!

  • 좋아요를 안누를수가 없네요. 정말 감사합니다.

  • 진심 코딩 신세계인데, 이렇게 좋은 선생님 만나게 되서 좋습니다. 열심히 볼께요! 그리고 한번 시도도 해보겠습니다.

  • 와 여태 코딩공부를 귀찮은 이론부터해서,
    기초부터 하나하나 배우려니까,
    너무 어렵고 귀찮아서 잘 안되고있었는데,
    이미 완성된 거를 끌어다 쓰는거여도,
    무언가 결과물을 바로바로 만들어내는 걸 보니까,
    영상을 보기만해도 뭔가 의욕이 마구 솟아오르는 것 같습니다.

    내가 여태하고있던 짓은 완전바보같다는 생각이 들었습니다.
    신세계를 깨달은 기분.

    발음도 정확해서 1.5배속으로 해도 잘들려서 좋네요!

  • 네이버 대신에 이 영상주소로 연관동영상 제목을 크롤링하려고 했습니다.코드는,   from bs4 import BeautifulSoup
    from urllib.request import urlopenresponse = urlopen('https://www.youtube.com/watch?v=ZTJjW7XuHIY&t=249s')
    soup = BeautifulSoup(response, 'html.parser')
    for anchor in soup.select("span.style-scope ytd-compact-video-renderer"):
        print(anchor)이렇게 했는데 결과값이 아무것도 안 나와여… 어디가 잘못됐는지 알 수 있나요?참고로 전 주피터노트북을 씁니다.

  • thanks for all the videos I like coding in my spare time and this is great!

  • 와 이런강의 진짜 좋은거같아요 Premium도 만드셔서 더욱더 좋은강의 보여주시면 무조건 가입할게요 정말감사합니다

  • #!/usr/bin/env python3

    # Anchor extraction from HTML document

    from bs4 import BeautifulSoup

    from urllib.request import urlopen

    response = urlopen('https://www.naver.com/')

    soup = BeautifulSoup(response, 'html.parser')

    for anchor in soup.select("span.ah_k"):

    print(anchor)
    이렇게 똑같이 쳤는데 컴파일링시 아무것도 안나와용.. ah_k로 되어있는걸 확인까지 다 했는데
    span으로 검색해서 나온 것들은 다 나오는데 ah_k가 안나오는데 뭐때문일까요..

  • 초심자 입장에서 궁금할만한 것들을 많이 고민하시면서 만드신 것이 보이네요. 감사합니다.

  • 엌ㅋㅋㅋ 참쉽죠???

  • 좋은 강의 감사합니다!!

  • 목소리 좋고, 설명 깔끔하고, 초보에게 도움되는 강의 고맙습니다.

  • 좋은 영상 감사합니다. 구름IDE를 활용하려고 하니 컨테이너 승인요청이 필요하더라구요~~아직 적극적으로 활용할 단계는 아니라서 무료로 활용해보고 싶은데 머라고 써야하나요? 파이썬으로 크롤링한다고 하니까 거절당해서요..ㅠㅠ

  • 안녕하세요. 예제대로 bs4까지 다 설치하고 실행했는데 from urllib request import urlopen
    ^
    SyntaxError: invalid syntax 이렇게 해당부분 에러가 뜨더라구요.. request, bs4 등등 pip 관련 전부 삭제 재설치 해도 저렇게 되는데 원인이 뭔지 알수있을까요.

  • 구름IDE 컨테이너 workspace 글씨체랑 글씨색깔 설정할 수 있나요?

  • 모든 분들이 잘 성공한거같은데 저는
    Item no.: 1 –> Item name = Polar bears

    Evaluating…

    Starting Download…

    Unfortunately all 20 could not be downloaded because some images were not downloadable. 0 is all we got for this search filter!

    Errors: 0

    라고 메시지가 뜹니다. 에러는 없고 폴더는 생성이되며 사진이 다운로드가 되지 않습니다.
    그래서 같은 google_images_download를 활용한 다른 예제로 해보았습니다. 다른 것이라 해봤자 경로,이름을 호출할때 넣어주는 방법으로 결국 원리는 같습니다.ㅎㅎ ; 그래도 같은 메시지가 떠서 구글 검색을 해보았으나,,, 저는 못찾겠더라구요 혹시 저와 같은 문제가 뜨는 분들이 있을까 궁금합니다…

  • Item no.: 2 –> Item name = baloons

    Evaluating…

    Starting Download…

    Unfortunately all 20 could not be downloaded because some images were not downloadable. 0 is all we got for this search filter!

    Errors: 0

    Item no.: 3 –> Item name = Beaches

    Evaluating…

    Starting Download… 이렇게 요류가 뜨고 이미지가 다운이 안됩니다 조코딩님 도와주세요

  • google images download 저는 동작하지 않네요.(폴더만 생성되고 파일 다운로드는 되지않음) 라이브러리 깃허브 가보니 동일 문제 겪으시는분들도 많은거같아요

  • 와 이런 강의 너무 좋아요! 시리즈물로 나오면 너무 좋을 것 같아요ㅎㅎ 영상 잘 보고 있어요:)

  • google_images_downloads 이용해서 예제를 실행시켜봤는데 세개의 키워드중 첫번째 북극곰만 크롤링되고 나머지는 "Unfortunately all 20 could no be downloaded …… "가 뜨는데 혹시 이런 경우를 아시나요??? 나머지 두개의 키워드만 따로 다시 실행해봐도 변화가 없네요 ㅠㅠ

  • 악보 ppt 만드는 용으로써야겠다.

  • 고등학교때 파이썬 한참 처음 나올때라 강의책도 별로 없고..배우려하니 지금 배워도 쓸 곳이 없다고해서 파이썬 안배웠는데 진짜 좋은 언어였군요 ㅜㅜ 바로 구독하고 천천히 다시 배워야겠습니다 ㅎㅎ

  • 순위 크롤링은 모바일 다음에서 해결했는데, 혹시 구글 이미지 크롤링도 문제가 있는건가요?? 저장이 거의 다가 안되고, 진짜 몇번씩 돌리면 한가지 키워드 정도만 될까 말까 하네요..ㅠㅠ

  • X-Factor AI Compliance

    GREAT!

  • 최근 부업관련해서 쿠팡 파트너스의 api를 이용해서 클롤링 하여 네이버, 티스토리,워드프레스등에

    상품정보를 올려 보려하는데 관련 코딩 강의 한번 해주시면 어떨런지요?
    소소하지만 직장인들 밥값정도는 벌수 있을것 같습니다.

  • 조코딩님 ! 항상 좋은 영상 감사합니다. 다름이 아니라, 구글 이미지 다운로드가 막혔는지 정말 안되서요.. 구글에 검색해본 결과 다음 링크와 같이 사람들이 이야기 중입니다.. ㅠㅠ 혹시 해결방법 아시나요?! https://github.com/hardikvasa/google-images-download/issues/280

  • response랑 anchor는 제맘대로 이름 지어도 되는 변수죠???? 글고 규칙이 다른 정보의 소스를 긁어올라면 anchor말고 다른 변수이름으로 for문 하나 더 만들면 되는건가요?
    with urlopen('url 들어갈 자리') as response:

    soup = BeautifulSoup(response, 'html.parser')

    for cate in soup.find_all("h1"):

    print(cate.get_text())

    for list in soup.find_all("div","col-auto"):

    print(list.get_text())

    아니면 하나의 변수에 배열로 2가지 같이 가져올 수도 있나요..?
    궁금해요궁금합니다 ㅠㅠ

  • 유익한정보감사합니다
    메일 일정시간마다 새로고침 하게하는 자동화 기능을 넣는 방법이 있나요?

  • 네이버 실시간 검색어 크롤링 안된다고 하셔서 다음에서 했는데
    출력이 두번씩 나오네요
    순위는 1~50위까지 한번씩 나오는데
    검색 단어는 2번씩 나오는데 어디가 잘 못 된걸까요 ~?

    from bs4 import BeautifulSoup

    from urllib.request import urlopen

    response = urlopen('https://www.daum.net/')

    soup = BeautifulSoup(response, 'html.parser')

    i = 1

    for anchor in soup.select("span.txt_issue"):

    print(str(i) + "위 : " + anchor.get_text())

    i = i + 1

  • 크롤링 하실때 베이트 조심하세요… 연구실 후배 크롤링하다가 컴퓨터 한대 납치 당했습니다.

  • 해당 키워드로 구글에 올라와있는 이미지중, 가로 세로 크기가 일정 크기 이상인 사진들만 받으려면 어떤 조건함수?? 명령어??를 추가해야 하나요?

  • 네이버 예시는 이제 안된다 하고..

    이미지 크롤링 할때
    Unfortunately all 20 could not be downloaded because some images were not downloadable. 0 is all we got for this search filter!

    이런 글이 나오면서 이미지가 하나도 크롤링이 안되는데.. 원인을 알려주실수 있으십니까 ,,?

  • 이거 컨테이너 쓰면 로컬 시스템에도 영향을 주나요? 한 번 깔아서 해봤는데, 로컬에 등록시킨 라이브러리 경로가 다 꼬여서 다시 잡아줘야하네요.
    이거 때문인지 아니면 다른 요인인지 궁금합니다.

  • 파이선과 카카오i오픈빌더를 연계한 예시도 부탁드려요ㅠ

  • 저 파이썬 코드?를 윈도우에서 간편하게 실행해서 다운받게 만들수는 없나요?

  • Unfortunately all 100 could not be downloaded because some images were not downloadable. 0 is all we got for this search filter!

    Errors: 0

    ({'EXO': [], '방탄소년단': [], '펭수': [], '노라조': [], '강다니엘': [], '송중기': [], '박보검': [], '공유': [], '박지훈': []}, 0)

    이런 오류는 어떻게 해결하나요?

  • 일단 원하는걸 뽑아내는데는 성공했는데, 글씨가 깨져서 나옵니다… 제목에 포함된 숫자덕분에 일단 원하는거라는건 파악했는데, "카페 이용 규정 안내" 라는 문구가 Ä«Æä ÀÌ¿ë ±ÔÁ¤ ¾È³» 로 깨져서 나오네요. 어떻게 해결하는지 알 수 있을까요…

  • 안녕하세요 조코딩님! 영상 잘 보고 있습니다. 이제는 Daum도 크롤링이 막힌듯 보이네요.. 출력이 아무것도 안나오네요 ㅎㅎ.. 혹시 selenium 다루는 영상도 올려주시면 감사하겠습니다. selenium도 여러번 시도했는데 자꾸 에러 메세지가 나와서 답답하네요..ㅎ 항상 감사합니다^^

  • google.py 작성하고 실행했는데 오류가 나면서 데이터 수집이 되지 않아요.
    어떤 부분이 잘못되었을까요?

    <코드>
    from google_images_download import google_images_download #importing the library

    response = google_images_download.googleimagesdownload() #class instantiation

    arguments = {"keywords":"소유진, 아이유, 성유리","limit":20,"print_urls":True, "format":"jpg"} #creating list of arguments
    paths = response.download(arguments) #passing the arguments to the function
    print(paths) #printing absolute paths of the downloaded images

    <에러메시지>
    Item no.: 3 –> Item name = uc131uc720ub9ac
    Evaluating…
    Starting Download…

    Unfortunately all 20 could not be downloaded because some images were not downloadable. 0 is all we got for this search filter!

    Errors: 0

    ({'소유진': [], ' 아이유': [], ' 성유리': []}, 0)

  • 정말 유익한 영상 가능합니다. 본 영상의 크롤링을 C로 구현이 가능한가요? 가능하다면 어떠한 방식을 이용해야 하는지 방향성이나 관련 검색어를 알려주실 수 있으실까요?

  • 정성스런 동영상 잘보고 있습니다.

    그런데….한가지 욕심을 부려보면…..

    크롤링 결과를 내컴퓨터 바탕화면에 있는 특정 디렉토리에 자동저장할수 있게 만드는건

    불가능할까요?

    결국은 이미지 크롤링 결과는 윈도 탐색기 환경에서 보는게 가장 편한데…..

    구름IDE 환경에서 그건 안되는지 여쭤봅니다.

  • 선생님은 잘 가르치시는데….학생이 우매하여 이제야 제 마음대로 좀 되네요…감사드립니다.

    그런데….네이버 이미지 50개가 아니라 더많은수의 이미지를 크롤링 할수는 없는지 여쭤봅니다.

    제가 찾고자 하는 모든 이미지를 크롤링하여 이미지검색에 필요한 시간을 줄이고자 하는게 목적인데….

    50개만 다운받을수 있다면….또 네이버 이미지검색으로 하나 하나 보면서 다운받아야 하기에….

    네이버 이미지 검색에 나오는 모든 이미지를 다운로드 받을수 있는 방법이 있을까요?

  • 저 위에랑 똑같이 만들었는데 Syntax Error: invalid syntax 라고 떴는데 어떻게 해야 돼요?

  • 앗 ㅠㅠ 따라하다 에러가나서 검색해보니 깃허브에서는 이미 이래저래 롤백에대해 말이 많네요.
    고치는데 시간이 좀 걸릴거같기도 한데 ㅠㅠ 아쉽습니다 뭔가 시도하다 끊긴느낌이라 ㅠ

  • 정말 쉽게 설명해주시네요^^

  • 구름ide를 사용했을 때 실제 업무 프로젝트를 진행하는데 문제가 없을 정도인가요?

  • 조코딩님 수정된 크롤링 영상은 언제올라오는지요?

  • 영상은 너무 쉽게 잘 가르쳐주셔서 좋은데 아무리 크롬으로 똑같이 따라해도 네이버 검색결과가 아무것도 뜨지 않는데 어떻게 해결하면 좋을까요ㅠㅠ

  • 영상보며 열심히 따라 중인 학생입니다!
    검색어 크롤링에서 저도 똑같이 적고 실행했는데 왜 출력이 안됄까요?ㅜㅜ

    [email protected]:어쩌고 이게 다시 반복되네요,,,ㅜㅜ

  • 이미지 크롤링이 안되요.
    Unfortunately all 20 could not be downloaded because some images were not downloadable

    이렇게 떠서 검색해보니,
    "Google은 최근 이미지 데이터 표시 방식을 변경하여 링크가 더 이상 스크랩되지 않았습니다.

    새로운 시스템으로 이미지 URL을 얻는 방법을 알아 내고 적절하게 변경하여 작동합니다.

    불행히도 Google은 더 이상 파일 형식 데이터를 제공하지 않으므로 이미지의 URL에서 데이터를 검색해야했는데 경우에 따라 작동하지 않습니다."
    라고 나오더군요..

  • 구글이미지 다운로드가 안되네요. Unfortunately all 20 could not be downloaded because some images were not downloadable. 0 is all we got for this search filter!

  • 영상을 보면서 하던 중 한가지 더 궁금한게 생겼습니다.
    http://ncov.mohw.go.kr/bdBoardList_Real.do?brdId=1&brdGubun=11&ncvContSeq=&contSeq=&board_id=&gubun=
    라는 코로나 정보를 알려주는 정부 사이트에서
    for anchor in soup.select("td.w_bold"):를 이용하면 인원수를 받아올수가있지만
    td.w_bold에 해당하는 모든게 같이 오게 됩니다. 혹시 이 과정을 좀더 바꾸어서
    td가아닌 a에 속한 b에 속한 c에 속한 td.w_bold를 찾아가는 방법은 없나요?? 검색을 했을때 방법들이 조금씩 다른거같아 제가 보고 따라한 조코딩님께 질문해봅니다.

    그리고 다른 것들을 보면 request가 꼭 나오던데 영상에서는 안하는 이유와 차이점이 궁금합니다.

Leave a Reply

Your email address will not be published. Required fields are marked *