상세 컨텐츠

본문 제목

실습으로 익히는 파이썬 기본문법 pt.3

CODING/Python

by 피그말리온(PYGM) 2022. 5. 27. 20:24

본문

파이썬 기초문법 - 멋사강의

터미널에서
pip install requests  //requests 설치 --> 외부모듈 사용시

import request
from bs4 import BeautifulSoup  //bs4에서 가져온 기능

print(request.get)
requests.get(url) //get 요청을 보내는 기능
![](https://velog.velcdn.com/images%2Farthursmind%2Fpost%2F769584a5-4d71-4278-bfe4-31ee8046afdd%2Fimage.png)

import requests

url = "https://www.daum.net"
response = requests.get(url)

print(response.text)  // html을 텍스트로 불러옴
response = requests.get(url)

print(type(response.text))    //str(문자타입)
print(type(BeautifulSoup(response.text, 'html.parser')))  //bs4.beautifulSoup
// BeautifulSoup(데이터, 파싱방법) 데이터: html or xml

print(response.url)
print(response.content)
print(response.encoding)
print(response.headers)
print(response.json)
print(response.links)
print(response.ok)
print(response.status_code)

///////////////////////////

import requests
from bs4 import BeautifulSoup

url = "http://www.daum.net/"
response = requests.get(url)
// print(type(response.text[:500])) // 500개 글자만

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

print(soup.title)    // 타이틀태그 가져옴
print(soup.title.string)   // string값만 가져옴(태그제외)
print(soup.span) // html내 가장 상단의 span태그만 불러옴
print(soup.findAll('span'))  // span 전체태그


file = open("daum.html","w")   // 파일 만듦
file.write(response.text)  // 파일에 response.text 내용 쓺
file.close()
파일 열어보고 따오려는 부분의 공통점들을 찾아봤다.

///////////////////////////////////////////
// html 문서에서 모든 a태그를 가져오는 코드
print(soup.findAll("a", "link_favorsch"))
// a태그중에 link_favorsch라는 클래스 포함된 것만 가져와

//이제 변수에 저장
results = soup.findAll("a", "link_favorsch")

//1. 줄바꿈해서 보여주기
for result in results:
	print(result, "\n")
    
//2. 태그같은것 지워주기
for result in results:
    print(result.get_text(),"\n")
    
///////////////////////////////

from bs4 import BeautifulSoup
import requests
from datetime import datetime

url = "http://www.daum.net/"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
rank = 1

results = soup.findAll('a','link_favorsch')

print(datetime.today().strftime("%Y년 %m월 %d일의 실시간 검색어 순위입니다.\n"))

for result in results:
    print(rank,"위 : ",result.get_text(),"\n")
    rank += 1
    
////////////////////////////////////////////
open("rankresult.txt", 모드)
모드: r --> read(읽기전용), 
w --> write(쓰기(기존내용 보존안함)),
a --> append(덧붙이기(기존내용 보존))
    
다시 완전문서:


from bs4 import BeautifulSoup
import requests
from datetime import datetime

url = "http://www.daum.net/"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
rank = 1

results = soup.findAll('a','link_favorsch')

search_rank_file = open("rankresult.txt","w")

print(datetime.today().strftime("%Y년 %m월 %d일의 실시간 검색어 순위입니다.\n"))

for result in results:
    search_rank_file.write(str(rank)+"위:"+result.get_text()+"\n")
    print(rank,"위 : ",result.get_text(),"\n")
    rank += 1
    
    
/////////////////////////////////////////////////

// 네이버 크롤링 -->> 헤더는 보안해지위해
from bs4 import BeautifulSoup
import requests
from datetime import datetime

headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = "https://datalab.naver.com/keyword/realtimeList.naver?age=20s"
response = requests.get(url,headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
rank = 1
#span - item_title
results = soup.findAll('span','item_title')

print(response.text)

search_rank_file = open("rankresult.txt","a")

print(datetime.today().strftime("%Y년 %m월 %d일의 실시간 검색어 순위입니다.\n"))

for result in results:
    search_rank_file.write(str(rank)+"위:"+result.get_text()+"\n")
    print(rank,"위 : ",result.get_text(),"\n")
    rank += 1
반응형

관련글 더보기

댓글 영역