4.5 For Loops
website 들을 리스트로 생성해 본다.
리스트에 있는 웹사이트가 동작중인지 내려갔는지 확인해 볼 것이다.
websites = ( 'google.com', 'airbnb.com', 'facebook.com', 'naver.com' )
websites[0]
인덱스를 사용해서 각각 확인해보는 방법도 있지만,
시간이 오래 걸리고 효율이 떨어진다.
리스트가 얼마나 긴지 신경 안쓰면서
리스트의 각 아이템을 활용해서 자동으로 코드를 실행할 방법을 사용해야 한다.
이걸 위해 for 반복문을 사용할 것 이다.
websites 튜플 안에 있는 각각의 아이템을 사용해서 코드를 실행하려 한다.
websites = ( 'google.com', 'airbnb.com', 'facebook.com', 'naver.com', )
for each in websites:
print('hello')
출력값:
hello
hello
hello
hello
튜플 아이템 갯수에 따라 hello 가 출력 되었다.
튜플 안에 있는 각각의 아이템으로 코드가 실행되었다.
for는 각각의 item 이 실행 될 때 placeholder 를 만드는 것을 허락해준다. - 실행중인 item 에 접근하는 변수
for (placeholer) in websites:
placeholder 의 이름은 user 가 원하는 대로 정할 수 있다.
potato 라고 정할 수 있다.
각 사이클에서 potato 가 무엇인지 확인해 볼 수 있다.
websites = [ 'google.com', 'airbnb.com', 'facebook.com', 'naver.com', 'daum.net' ]
for potato in websites:
print('potato is equals to',potato)
출력값:
potato is equals to google.com
potato is equals to airbnb.com
potato is equals to facebook.com
potato is equals to naver.com
potato is equals to
파이썬에서 list(또는 tuple)인 websites 리스트의 모든 item 에 대해 위 코드를 실행했다.
이때 현재 어떤 item이 처리되고 있는지를 알아야 하기 때문에
파이썬은 potato로 user가 그 item에 접근할 수 있게 해준다.
일종의 관습으로 tuple 이나 list 를 생성할 때 복수형을 사용한다.
ex) websites, items, movies, users
ex) for website in websites, movie in movies 처럼 사용한다.
potato 처럼 user 가 단어를 지정하면 된다. 꼭 위처럼 사용하지 않아도 된다.
현재 실행중인 item 에 접근하는 변수 이름은 user 마음대로 정할수 있다.
websites = ( 'google.com', 'airbnb.com', 'facebook.com', 'naver.com' )
for website in websites:
print('Running good',website)
출력값:
Running good google.com
Running good airbnb.com
Running good facebook.com
Running good naver.com
4.6 URL Formatting
URL Formatiing 을 해서 실제 웹사이트 주소로 이동을 시도해본다.
코드는 http 또는 https 에 :// 를 붙인 웹사이트로 주소로만 이동이 가능하다.
website 라는 이 변수는 차례대로 각 사이클에서 list 안의 item으로 바뀐다.
첫번째 website 변수는 구글이 될것이다.
if 를 사용해서 시작문자가 https:// 로 시작하면 (True 일 경우) good to go 를 출력하고
else 를 사용해서 https:// 로 시작하지 않으면 we have to fix it 을 출력하는 코드를 작성했다.
if 문은 오직 무언가가 True 인지 False 인지만 판단한다.
startswith 메서드는 ( ) 안의 내용이 True 인지 False 인지 판단해서 알려준다.
websites = ( 'google.com', 'https://airbnb.com', 'facebook.com', 'https://naver.com' )
for website in websites:
if website.startswith('https://'):
print("good to go")
else:
print("we have to fix it")
출력값:
we have to fix it
good to go
we have to fix it
good to go
https:// 로 시작하지 않는 코드에 집중해본다.
https:// 로 시작하지 않으면 have to fix 를 출력하는 코드를 not 을 사용하여 작성한다.
not 은 무언가가 True 가 아닌 경우를 확인한다.
( if website.startswith('https://') == False 와 같다 )
websites = ( 'google.com', 'https://airbnb.com', 'facebook.com', 'https://naver.com' )
for website in websites:
if not website.startswith('https://'):
print('have to fix')
출력값:
have to fix
have to fix
# f" " 를 사용해서 변수를 통째로 string(문자열)으로 만들기
f" " 에 {변수} 와 쓰고싶은 문장들을 입력한다
f" " 를 사용해서 https:// 가 없는 웹사이트에 자동으로 https:// 를 추가하여
출력해주는 코드를 작성해본다.
if not website.startswith('https://'): → website 변수 시작문자가 https:// 가 아니면
website = f"https://{website}" → https://website 변수, 중괄호 안의 website 를 넣어서 https:// 를 붙인다.
print(website) → https:// 가 붙여진 website 를 출력
websites = ( 'google.com', 'https://airbnb.com', 'facebook.com', 'https://naver.com' )
for website in websites:
if not website.startswith('https://'):
website = f"https://{website}"
print(website)
'Programming > Python 웹 스크래퍼 만들기' 카테고리의 다른 글
Python Requests, Get 복습 (1) | 2022.11.15 |
---|---|
Python Requests (0) | 2022.11.14 |
Python List, Tuple, Dict 복습 (0) | 2022.11.10 |
Python Tuple, Dictionary (0) | 2022.11.09 |
Python List (0) | 2022.11.08 |