1. urllib.request.urlopen(url)
: url호출하여 응답결과 리턴
: response = req.urlopen(url)
: contents = reponse.read()
: 혹은 한번에 contents = req.urlopen(url).read().decode('UTF-8')로 읽을 수 있음
2. urllib.request.urlretrieve(url, file_path)
: url 호출하여 파일로 저장, return 항목은 file과 header
: ex) file, header = urllib.request.urlretrieve(url, file_path)
3. urllib.parse.urlencode({'format':'json'})
: dictinary 형태의 값을 urlecoding한다.
4.requests.get(url, stream=True, verify=False)
: url 호출할 결과를 포맷팅하여 읽을 수 있다.
r=s.get('https://jsonplaceholder.typicode.com/todos/10', stream=True, verify=False)
print(r.text)
print(r.headers)
print(r.json())
print(r.json().keys())
5. fake_useragent
: urlopen 혹은 requqest에서 가짜 agent헤더 설정
ua = UserAgent()
headers ={
'User-agent':ua.ie,
'referer' : 'https://finance.daum.net/'
}
url = "https://finance.daum.net/api/search/ranks?limit=10"
data = req.urlopen(req.Request(url, headers=headers))
6. 쿠키 설정
s =requests.Session()
r = s.get("https://httpbin.org/cookies", verify=False)
#쿠키 설정
jar = requests.cookies.RequestsCookieJar()
#예제 post
r = s.post('https://httpbin.org/post', data={'name':'scott'}, cookies=jar)
#예제 post payload 형태
payload1 = {'name':'scott', 'pwd':'dragon'}
r = s.post('https://httpbin.org/post', data=payload1, cookies=jar)
7.BeautifulSoup
: 서버에서 응답한 html 항목 처리
soup = BeautifulSoup(html,'html.parser')
print(soup.prettify())
h1 = soup.html.body.h1
#태그 안에 클래스로 조합하여 가져오기
link2 = soup.find_all('a',class_='sister') # 오류 class_ <==under bar 필요
#태그 텍스트 조건
link3 = soup.find_all("a",string=["one"," two "]) # 오류 텍스트가 정확히 일치해야 함, 공백 있어도 불일치
#------------------------------------------
# find, findall : 태그로 검색
# select, select_one : css 선택자
#------------------------------------------
link5 = soup.select_one('p.title > b')
print(link5.text) #오류 select로 하면 에러가 발생함
link6 = soup.select_one('a#link2')
print(link6.string)
link7 = soup.select_one("a[data-io='link3']") # 해당되는 값이 없으면 에러가 발생함
print(link7.text)
link8 = soup.select_one("p.story > a:nth-child(2)")
print(link8)
link9 = soup.select_one("p.story > a:nth-of-type(2)")
'아는 것이 힘 > IT세상' 카테고리의 다른 글
[COS Pro] Python 2급 (0) | 2021.12.06 |
---|---|
[Apple] iPhone pc 백업 위치 변경 (0) | 2021.11.25 |
[python] 가상환경 설정 (0) | 2021.09.09 |
[Javascript] 조건에 맞는 값 응답 함수 (0) | 2021.09.02 |
상대경로 (0) | 2021.08.23 |