[기본]
import urllib.request
import urllib.parse
○ GET요청시 3가지 포인트
1. 방식
GET, POST, PUT, DELETE
2. 대상
http://www.naver.com => 호스트이름
3. 추가 정보
-경로 : /images/adb
-데이터 : ?board=1&id=50
위를 코딩해보자.
api = "http://www.naver.com"
values = {
"board" : "1",
"id" : "50",
}
import urllib.request #밑의 url 내용을 들고 올 수 있게 해주는 모듈
from bs4 import BeautifulSoup # BeautifulSoup들고와서 밑에 객체 만들
url = ""
response = urllib.request.urlopen(url)
soup = BeautifulSoup(response, "html.parser") #soup객체를 통해 사용가능(첫번째 인자는 응답 또는 문자, 두번째인자는 파서)
results = soup.select()
for result in results:
print(results.string)
○ 환율 가져오기
http://lol.inven.co.kr/dataninfo/champion/manualTool.php?champnum=2#liststart 기준
1단계 : 필요한 것이 어디 있는지 확인하기! ex)네이버증시에서 오늘의증시 부분
2단계 : 뭘로 가져올지 확인하기 ex) span태그
import urllib.request #밑의 url 내용을 들고 올 수 있게 해주는 모듈
from bs4 import BeautifulSoup # BeautifulSoup들고와서 밑에 객체 만들
url = "http://lol.inven.co.kr/dataninfo/champion/manualTool.php?champnum=36#liststart"
response = urllib.request.urlopen(url)
soup = BeautifulSoup(response, "html.parser") #soup객체를 통해 사용가능(첫번째 인자는 응답 또는 문자, 두번째인자는 파서)
results = soup.select("div[class=champName]") # #section_body strong /
for result in results:
print(result.string)
소스코드 中
추가 지시자로는
1) section body의 <a href>태그의 속성 가져올때
soup.select("#section_body a")
print(attrs["title])
#A가 빈 문자열이라면 continue로 돌아가게하고, str의 0번째 문자가 '<'가 아닐경우에 실행하라
if A == "":
continue
if str[0] not in ["<"]
pass
○ request로 로그인하기
로그인 기능은 세션이란 기능이 있는데, urllib 모듈로만 하기에는 한계가 있다.
그래서 추가 외부 모듈 사용하자.
pip install requests 해서 다운받고
세션을 만드는 방법은 session = requests.session() 으로 만든다.
session.get(url)
session.put(url)
session.head(url)
session.delete(url)
이런식으로 사용하고, 해당 동작을 response라는 객체에 담아 사용하자.
response = session.get(url)
그리고
response.raise_for_status() 이러면 요청이 실제로 걸리고,
response.text로 텍스트를 가져와 사용가능.
url = "http://google.com"
import requests
from bs4 import BeautifulSoup
#요청을 모방하자
session = requests.session()
url = "http://test.nanum.info:82/admin/default.asp"
data = {
"return_url": "http://test.nanum.info:82/admin/default.asp",
"m_id":"admin",
"m_pwd":"admin",
}
response = session.post(url, data=data)
response.raise_for_status()
url = "http://test.nanum.info:82/admin/member_list.asp"
response = session.get(url)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
text = soup.find("")
print(text)
소스코드 中
'프로그램언어+ > ┗Crawling' 카테고리의 다른 글
javascript 엮인 크롤링(cheerio모듈사용) (0) | 2018.12.11 |
---|---|
Python requests 모듈을 사용하여 티스토리 open api 파일 첨부 api 사용(스크랩) (0) | 2018.12.11 |
셀레니움 크롤링 기초 (0) | 2018.10.26 |
웹 크롤러 - 파이썬(1일) (0) | 2018.07.10 |