import requests from bs4 import BeautifulSoup from openpyxl import Workbook keyword = input("검색어를 입력하세요") lastpage = input("마지막 페이지 번호를 입력해 주세요") pageNum = 1 for i in range(1, int(lastpage) * 10, 10): print(f"{pageNum}페이지 입니다.~~~~~~~~~~~~~~~~~") response = requests.get(f"https://search.naver.com/search.naver?sm=tab_hty.top&where=news&query={keyword}&start={i}") html = response.text soup = BeautifulSoup(html, 'html.parser') links = soup.select(".news_tit") wb = Workbook() ws1 = wb.active ws1.title = "연습" ws1.append(["제목", "링크"]) print(links) for link in links: title = link.text url = link.attrs['href'] print(title, url) ws1.append([title, url]) pageNum = pageNum + 1 wb.save(filename='연습.xlsx') 네이버 기사 제목과 url 수집한 걸 엑셀에 옮겨보려고 합니다. 터미널에서는 마지막 페이지 번호 입력를 4로 했다고 하면 총 40개의 제목과 링크가 나타나는데 엑셀에는 옮겨지기는 하는데 10개의 기사 제목, 링크만 옮겨집니다. 어떻게 수정해주어야 할까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. Class 'JdbcMemberRepository' must either be declared abstract or implement abstract method 'findById(Long)' in 'MemberRepository'라고 오류가 뜹니다. @Override public Optional<Member> findByName(String name) { String sql = "select * from member where name = ?"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection(); pstmt = conn.prepareStatement(sql); pstmt.setString(1, name); rs = pstmt.executeQuery(); if(rs.next()) { Member member = new Member(); member.setId(rs.getLong("id")); member.setName(rs.getString("name")); return Optional.of(member); } return Optional.empty(); } catch (Exception e) { throw new IllegalStateException(e); } finally { close(conn, pstmt, rs); } } 이런식으로 findByID가 정의 되있는데에도 계속 오류가 뜨네요 어떻게 해야될까요 ㅠㅠ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 빌더 관련 설명에서 궁금한점 질문 드립니다. 빌더 장점 중 객체의 불변성 이야기 해주셨는데요, 멤버변수 final로 선언하고, 만약 변경 시 빌더를 이용해서 새로운 객체를 리턴하는것을 말씀하시는 걸까요? 감사합니다.
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
https://pub.dev/documentation/table_calendar/latest/table_calendar/HeaderStyle-class.html 켈린더 헤더를 저렇게 커스텀해서 만들고 싶습니다. 공식 문서를 봤는데 그에 관련된 속성이 없는것 같아서... 질문 남깁니다... 아이콘을 추가하고싶습니다... 만약 추가가 안된다면 켈린더의 헤더부분을 안보이게 한다음 바디 위에 Row를 추가해서 넣어야 할까요?
메모장 어플을 시험삼아 만들어 보고 있습니다 정보를 입력한 뒤 저장 버튼을 누르고 Datetime.Now를 이용해 항목에 대한 작성 당시 현재시간을 표시하고싶은데 어디에 Datetime.Now를 지정해야되는지 잘 모르겠습니다. 일단 new ProductInfo로 지정해야되는거같긴 한데 잘 안되네요... 밑에처럼 작성하면 product1이 활성화가 안되고 위의 product를 지우면 아예 없어져버리고 다른 방법은 생각이 잘 나질 않아요... private async void OnSave() { var product = ProductInfo; var product1 = new ProductInfo { TimeTodo = DateTime.Now }; await App.ProductService.AddProductAsync(product); await Shell.Current.GoToAsync(".."); }
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 자바로 예를 들자면 옛날에는 최적화를 위해 float, int같은 작은 단위들을 최대한 고려했었는데 컴퓨터 성능의 향상과 네트워크 속도 향상 저장 공간의 비용 절감 등의 이유로 지금은 거의 조금이라도 애매하면 모두 long, double을 선언해버리고 쓰는 것으로 알고 있습니다 마찬가지로 데이터베이스에서도 현실적으로 몇 바이트를 아끼기 위해 TINYINT같은 타입들을 사용하는 것이 크게 중요하지는 않은 일인가요? 아니면 수백수천만의 저장 데이터들이 들어오기 때문에 이런 부분까지도 신경써줘야 하는 것인가요? 실무에 계신 분의 의견이 궁금합니다 그리고 별개의 이야기지만 제가 인프런에서 들은 강의 중 가장 만족스럽고 너무 귀에 쏙쏙 박히는 강의입니다. 좋은 강의 만들어주셔서 감사합니다!
현재 windows10을 이용중이고, cmd에서 'npm install -g expo-cli'라고 입력하였을 때 설치되다가 마지막에 이러한 에러가 나옵니다. 이럴 땐 어떻게 해결해야하나요? npm ERR! code EEXIST npm ERR! path C:\Users\tlsl1\AppData\Roaming\npm\node_modules\expo-cli\bin\expo.js npm ERR! dest C:\Users\tlsl1\AppData\Roaming\npm\expo npm ERR! EEXIST: file already exists, cmd shim 'C:\Users\tlsl1\AppData\Roaming\npm\node_modules\expo-cli\bin\expo.js' -> 'C:\Users\tlsl1\AppData\Roaming\npm\expo' npm ERR! File exists: C:\Users\tlsl1\AppData\Roaming\npm\expo npm ERR! Remove the existing file and try again, or run npm npm ERR! with --force to overwrite files recklessly. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\tlsl1\AppData\Roaming\npm-cache\_logs\2022-07-22T12_23_48_523Z-debug.log
[질문 내용] 수업을 듣는 도중 궁금증이 생겨서 질문 남깁니다. Controller 소스코드중 GetMapping 어노테이션에서 밸류값에 /를 붙일때와 안붙이실때가 있더라고요. 궁금해서 찾아봤는데 명확한 답변을 찾지 못해서 질문으로 남깁니다. @RequestMapping("/") -> 베이스 url 뒤에 붙인다 @RequestMapping("") -> 현재 url 뒤에 붙인다 로 이해했는데 제가 잘 이해한건지 궁금합니다.
httpResponse.sendRedirect("/login?redirectURL=" + requestURI); 라고 되어있는데 queryString의 key 값을 URL로 하는거랑 URI 로 하는거랑 뭐가 더 적절한가여? 강의에서 URL이라했으니 그냥 URL로 적어주면 될까여? 왜냐면 변수명은 requestURI라고 해놓으셔서 궁금해요
안녕하세요! 덕분에 잘 배우고 있습니다. 다름이 아니라 문법에 관한 질문이 있는데요. 앞 강의에서 json문법을 사용하신다고 하셨던 것 같은데 이번 강의에서 보면, db.users.updateOne({name:"Sihoon Kim"},{$set:{age:30}} 와 같은 경우에는 key에 따옴표를 붙이지 않았던 반면 객체 안의 객체를 들어갈 경우에는 db.users.updateOne({"name.first": "Elon"},{$set:{"name.last": "musk2"}}) 와 같이 key에 쌍따옴표를 써주셨습니다. json문법은 key에 따옴표를 사용하지 않는 것으로 알고 있는데 혹시 어떤 경우에 따옴표를 사용하고 안하는 것인지 알려주시면 감사드리겠습니다!
태그set에 create 한 다음에 Tag.objects.all() 을 입력하면 기존의 태그에 create한 태그가 추가되어서 출력이 되는데 어째서 post.tag_set.all() 에는 create한 태그가 출력되지 않는지 잘 모르겠습니다. 전자의 경우 아직 DB에 등록되지는 않은 상태라 그런건가요?