본문 바로가기

IT.모바일

9일차 GitHub, BeautifulSoup

by FrankUniq 2023. 5. 8.
SMALL
더보기

9일차.KPT 회고

Keep

Problem

T

GitHub Gist는 코드 스니펫을 공유할 수 있는 간단한 방법을 제공합니다. 모든 Gist는 Git 저장소이므로 포크 및 클론 할 수 있습니다. Gist는 공개적(public)이거나 비밀적(secret)일 수 있습니다. 공개적인 Gist는 Discover에서 찾을 수 있으며 검색 가능합니다. 비밀적인 Gist는 Discover에서 찾을 수 없으며 작성자가 로그인하고 있지 않으면 검색할 수 없습니다.

 

Colab에서 Gist에 저장한 파일은 GitHub의 Gist 홈페이지에서 찾을 수 있습니다. GitHub에 로그인 한 후 Gist 홈페이지로 이동하면 됩니다.

 

계정명이 mybuenoday라면 Gist 주소는 https://gist.github.com/mybuenoday 입니다. 이 주소로 이동하면 mybuenoday가 작성한 모든 Gist를 볼 수 있습니다.

  1. https://github.com/mybuenoday/habit_tracker 에 있는 파일들을 https://github.com/mybuenoday/gpt/edit/main/README.md 에 링크시킬 수 있어?
  2. https://github.com/mybuenoday/habit_tracker 에 있는 파일들을 https://github.com/mybuenoday/gpt에 복사해오면 https://github.com/mybuenoday/gpt에 있던 파일들 실행 따로, https://github.com/mybuenoday/habit_tracker 에 있던 파일들 실행 따로 할 수 있어?

 

  1. https://github.com/mybuenoday/habit_tracker 저장소에 있는 파일들을 https://github.com/mybuenoday/gpt 저장소의 README.md 파일에 링크할 수 있습니다. 각 파일의 URL을 만들고 README.md 파일에 링크를 추가하면 됩니다. 예를 들어, https://github.com/mybuenoday/habit_tracker 저장소의 main 브랜치에 있는 example.py 파일을 링크하려면 다음과 같이 작성할 수 있습니다:
[example.py](https://github.com/mybuenoday/habit_tracker/blob/main/example.py)
  1. https://github.com/mybuenoday/habit_tracker 저장소에 있는 파일들을 https://github.com/mybuenoday/gpt 저장소로 복사한 후 각 저장소의 파일들을 따로 실행할 수 있습니다. 그러나 두 저장소의 파일들이 서로 의존성이 있는 경우 실행에 문제가 발생할 수 있습니다.

Github

commit - comment & update

push - github에 upload

pull - local pc에 저장

하나의 프로그램당 하나의 저장소(repository)를 사용하는 것이 일반적입니다. 그러나 이것은 규칙이 아니며 여러 프로그램을 하나의 저장소에 저장할 수도 있습니다. 저장소의 구성은 개발자의 선택에 따라 달라집니다.

  1. GitHub에서 파일을 복사하는 방법은 여러 가지가 있습니다. 가장 간단한 방법은 파일의 내용을 복사하여 새로운 파일에 붙여넣는 것입니다. 또한 `git` 명령어를 사용하여 로컬 저장소에서 파일을 복사하고 다른 저장소에 커밋할 수도 있습니다.
  2. 브랜치(branch)는 독립적으로 작업을 진행하기 위한 개념입니다. 하나의 저장소에서 여러 개의 브랜치를 만들어 각각 다른 작업을 진행할 수 있습니다. 예를 들어, `main` 브랜치에서는 안정적인 코드만 유지하고, 새로운 기능을 개발할 때는 `feature` 브랜치를 만들어 작업한 후 완료되면 `main` 브랜치에 병합(merge)하는 방식으로 사용할 수 있습니다.

3. 저장소(repository)는 프로젝트의 파일과 버전 관리 정보가 저장되는 곳을 의미합니다. GitHub에서는 각 저장소가 하나의 프로젝트를 나타내며, 저장소 내에서 브랜치, 이슈(issue), 풀 리퀘스트(pull request) 등의 기능을 사용하여 협업 및 버전 관리를 할 수 있습니다.

 


 

GitHub에서 브랜치를 만드는 방법은 다음과 같습니다:

  1. GitHub 웹사이트에서 저장소로 이동합니다.
  2. 저장소의 메인 페이지 상단에 있는 브랜치 선택 드롭다운 메뉴를 클릭합니다.
  3. 드롭다운 메뉴에서 새로운 브랜치 이름을 입력하고 Enter 키를 누릅니다.

이렇게 하면 새로운 브랜치가 생성됩니다. 또한 git 명령어를 사용하여 로컬 저장소에서 브랜치를 만들 수도 있습니다. 다음은 예제 명령어입니다:

git checkout -b new-branch

이 명령어는 new-branch라는 이름의 새로운 브랜치를 만들고 해당 브랜치로 전환합니다.

git 명령어는 로컬 컴퓨터에서 설치된 git 클라이언트를 사용하여 실행할 수 있습니다. 웹 브라우저에서는 git 명령어를 직접 실행할 수 없습니다. 그러나 GitHub 웹사이트에서는 git 명령어와 유사한 작업을 수행할 수 있는 기능을 제공합니다. 예를 들어, GitHub 웹사이트에서는 브랜치를 만들고 전환하거나 파일을 추가, 수정, 삭제하는 등의 작업을 할 수 있습니다.

 


 

Slack의 Huddle은 Clubhouse와 Twitter Spaces와 유사한 개념으로, 정식 회의 시간이나 초대장이 없습니다. 사람들이 언제든지 Huddle에 들어와서 참여할 수 있습니다¹. Huddle은 Slack에서 진행되며, 오디오 또는 비디오로 즉시 연결하고 화면을 공유하여 이미 작업 중인 곳에서 더 많은 작업을 수행할 수 있습니다.

Huddle에서 공유된 모든 링크, 문서 및 메시지는 Huddle이 끝난 후 자동으로 저장되므로 팀이 참조를 위해 쉽게 다시 접근할 수 있습니다.

 


 

a_tags = soup.find_all('a') 
for a_tag in a_tags:
    link = a_tag.get('href')
    print(link)
c = soup.find_all("a")
for one in c:
print(one['href'])

위 코드와 아래 코드의 결과가 같은데 차이가 뭔가요?

 

두 코드 모두 BeautifulSoup 객체의 find_all 메서드를 사용하여 모든 a 태그를 찾은 다음 for 루프를 사용하여 각 a 태그의 href 속성을 가져오고 있습니다. 따라서 두 코드의 결과는 동일합니다.

차이점은 href 속성을 가져오는 방법입니다. 첫 번째 코드에서는 get 메서드를 사용하여 href 속성을 가져오고 있습니다. 두 번째 코드에서는 대괄호([]) 표기법을 사용하여 href 속성을 가져오고 있습니다. 이 두 가지 방법 모두 href 속성을 가져올 수 있습니다.

 


 

print(soup.find("p",id="p4").text)
print(soup.find_all("p",id="p4")[0].text)

위 아래 코드 결과가 같은데 둘 차이가 뭔가요?

 

두 코드 모두 idp4p 태그의 텍스트를 출력하고 있습니다. 따라서 두 코드의 결과는 동일합니다.

차이점은 p 태그를 찾는 방법입니다. 첫 번째 코드에서는 find 메서드를 사용하여 idp4인 첫 번째 p 태그를 찾고 있습니다. 두 번째 코드에서는 find_all 메서드를 사용하여 idp4인 모든 p 태그를 찾은 다음 첫 번째 p 태그를 선택하고 있습니다.

만약 HTML 문서에 idp4p 태그가 하나만 있다면 두 코드 모두 동일한 결과를 반환합니다. 그러나 HTML 문서에 idp4p 태그가 여러 개 있다면 첫 번째 코드는 첫 번째 p 태그만 반환하고 두 번째 코드는 모든 p 태그를 반환합니다.

 


 

 

BeautifulSoup 객체의 find_all 메서드를 사용하여 모든 p 태그를 찾은 다음 인덱스를 사용하여 두 번째 p 태그를 가져올 수 있습니다. 다음은 예제 코드입니다:

p_tags = soup.find_all('p')
second_p_tag = p_tags[1]
print("두번째 p태그 요소 : ", second_p_tag)

BeautifulSoup 객체의 find 메서드를 사용하여 idp4p 태그를 찾을 수 있습니다. 다음은 예제 코드입니다:

p_tag = soup.find('p', id='p4')
print("id가 p4인 p태그 요소 : ", p_tag)

BeautifulSoup 객체의 find_all 메서드를 사용하여 모든 a 태그를 찾은 다음 각 a 태그의 href 속성을 가져와서 모든 링크를 얻을 수 있습니다. 다음은 예제 코드입니다:

a_tags = soup.find_all('a')
for a_tag in a_tags:
    link = a_tag.get('href')
    print(link)

댓글