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

+ Recent posts