라고솔로가말했습니다
대표칭호 없음
SaidBySolo 8b58f951b6404b78ae3ba92d55d431f7
네이버 포스트 크롤링 후기입니다.
Github gist: 링크
레포지토리 소스: 링크
주석도 써놓았으니 궁금하면 보시면됩니다.
2차원리스트를 1차원리스트로 바꾸는 방법
많은 방법이있지만 간결한 리스트 캄프리헨션스를 사용했다.
[element for list_ in lists for element in list_]
이스케이프 시퀀스가 그대로나옴
해당 링크를 참고했습니다.
def decode_escapes(like_html: str) -> str: escape_sequence_regex = re.compile( r""" ( \\U........ # 8-digit hex escapes | \\u.... # 4-digit hex escapes | \\x.. # 2-digit hex escapes | \\[0-7]{1,3} # Octal escapes | \\N\{[^}]+\} # Unicode characters by name | \\[\\'"abfnrtv] # Single-character escapes )""", re.UNICODE | re.VERBOSE, ) return escape_sequence_regex.sub( lambda match: codecs.decode(match.group(0), "unicode-escape"), like_html )
해당방법은 바이트코드로 바꾸면서 글자가 깨지게되는데 글자가 깨지는현상을 방지해준다.
문자열의 "true" "false" 같은 문자열로된 참 거짓값을 내장 모듈로 바꿀수있다
from distutils.util import strtobool print(strtobool("false"))
"Y", "N"과같은 것도 처리해주는것같다
urllib내장 모듈을 활용해 URL을 나눌수있다
from urllib.parse import urlparse, parse_qs parsed_url = urlparse("url") paresed_query = parse_qs(paresed_url.query)
쿼리까지 나눌수있었다
여러 클래스를 상속받고 초기화하는경우 다음과같이한다
class Class1(): def __init__(self, class_1): self.class_1 = class_1 class Class2(): def __init__(self, class_2): self.class_2 = class_2 class Class3(Class1, Class2): Class1.__init__(self, "class_1") Class2.__init__(self, "class_2")
self인자를 무조건 주어야한다.
두개의 변수를 함께 for 루프를 돌리고자하면 zip을 사용하자
list_1 = [0,2] list_2 = [0,1] for list_1_element, list_2_element in zip(list_1, list_2): print(list_1_element, list_2,element)
이렇게 작성하면서 알게된걸 적어봤어요.
역시 코딩은 맞으면서 배워야해요
냥냐챠
2020.09.23'^'b
명이
2020.11.13오늘의 결론 : 코딩은 맞으면서 배워야한다.