다음과 같이 script에서 $.post로 다음과 같이 보내면

$.post(url, param, function(result){
	// 
}, Ajax.CONTENT_TYPE.JSON)

Spring에서 @RequestBody로 받을 수 있다.

 @PostMapping(url)
 public returnType methodName(@RequestBody requestDto){
 	return null;
 }

 

$.post로 보낼때 function 다음 Ajax.CONTENT_TYPE.JSON을 넣어줘야 한다.

 

'코드정리 > JQuery' 카테고리의 다른 글

[JQuery] unbind()와 bind()  (0) 2022.11.15
[JQuery] Radio Button Checking  (0) 2022.11.15
[JQuery] serializeArray 로 Form 데이터 가져오기  (0) 2022.11.15
[JQuery]Ajax 사용  (0) 2022.11.15
from urllib.request import urlopen
from bs4 import BeautifulSoup

# crawling site url
html = urlopen("https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=realm&dataSetSn=71267")
source = BeautifulSoup(html, "html.parser")

title = source.select_one('div.tabDiv1 > div.contentWrap > ul > li:nth-child(2) > div > table > tbody > tr:nth-child(1) > td:nth-child(4)')
print(title)
print(title.text)

 

urlopen, BeautifulSoup 를 임포트 한다.

 

urlopen으로 url을 입력한다.

그런다음 BeautifulSoup로 파싱한다.

 

여러 함수가 있지만 select_one를 사용해서 원하는 위치를 설정하는 방법을 사용했다.

 

먼저 사이트에 원하는 사이트에 접속 한 후 개발자 도구를 연다.

 

개발자 도구에서 Elements를 클릭한다.

위 이미지에서 빨간색 표시를 클릭한다. 

 

그런 다음 crawling 원하는 위치를 선택한다.

원하는 곳 선택.
개발자 도구에서 선택한 위치에 표시된다.

위 사진처럼 표시된다. 

개발자 도구 화면에서 표시된 곳에 오른쪽 마우스 킬릭 한 후 Copy > Copy selector 을 클릭한다.

그러면 선택한 곳의 위치를 html 구조로 복사된다.

ex) #content > div.tabDiv1 > div.contentWrap > ul > li:nth-child(1) > div > table:nth-child(2) > tbody > tr > td:nth-child(3)

 

그런 다음 처음 코드에서 select_one() 안에 붙여넣기 하면 된다. 때에 따라서 앞에 #content > 는 삭제해야 한다.

print(title)은 테그까지 다 출력되고, 안에 텍스트만 얻고 싶으면 .text를 붙여주면 된다.

 

'코드정리' 카테고리의 다른 글

[Python] create sqlite file and table  (0) 2023.03.06
import sqlite3

con = sqlite3.connect('dbname.db')
cur = con.cursor()

sql = "CREATE TABLE table_name(num INTEGER PRIMARY KEY AUTOINCREMENT" \
      ", title TEXT )"
cur.execute(sql)
con.commit()

sqlite3 를 임포트 한 뒤

 

db 이름을 설정하고 연결하면 해당 위치에 자동으로 파일이 생성된다.

 

테이블 생성은 쿼리문을 작성해서 execute한 뒤 commit 하면 생성된다.

 

 

 

'코드정리' 카테고리의 다른 글

[Python] Crawling with BeautifulSoup  (0) 2023.03.06
Insert into table_name ( column1, column2)
values (val1, val2), (val3, val4), (val5, val6)
on conflict ( column1 ) do update set content = excluded.content

 

현제 윈도우가 top인지 확인할 필요가 있다.

 

특히 팝업 등을 만들때 사용된다.

 

if(self !== top){
	top.document.location.reload()
}

//self
//top

전화번호나 핸드폰 번호를 db에 삽입할때 숫자만 넣는 경우도 있다.

 

그 데이터를 다시 불러올때 번호 같은 것은 자릿수 대로 나눠줘야 할 필요가 있다.

 

 

/**
 * 번호 분류별로 구분
 * @num '-' 문자가 들어있지않은 숫자로된 전화번호
 */
function phoneFomatter(num,type){
    var formatNum = '';
    if(num.length==11){
         formatNum = num.replace(/(\d{3})(\d{4})(\d{4})/, '$1-$2-$3');
    }else if(num.length==8){
        formatNum = num.replace(/(\d{4})(\d{4})/, '$1-$2');
    }else{
        if(num.indexOf('02')==0){
            formatNum = num.replace(/(\d{2})(\d{4})(\d{4})/, '$1-$2-$3');
        }else{
            formatNum = num.replace(/(\d{3})(\d{3})(\d{4})/, '$1-$2-$3');
        }
    }
	}
    return formatNum;
}

코드에 보통 영어로 많이 사용하기에 한글이 입력을 받지 않지만 혹시 한글이 입력될 경우 script에서 검증을 해야한다.

 

const korean = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/;
korean.test(string);

javascript에서 정의가 안된 변수를 찾는 방법은 다음과 같다.

 

(typeof a == "undefined")
// typeof 가 들어가야 한다. 안들어가면 오류 날 수도 있음..

+ Recent posts