묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
쇼핑몰 크롤링 select, select_one 차이
잔재미코딩 선생님 우선 강의 정말 잘 듣고 있습니다.감사합니다. ^^ 크롤링 프로그램 완성: 크롤링한 데이터에서 다시 크롤링하기1 (업데이트)에서 질문드립니다. 수업자료에 올려주신 select로 태그를 가져오는 과정에서지마켓 bestitems는 왜 one으로만 작동하는 건지 궁금합니다.강의 찍어주시던 시기에는 bestitems 클래스가 2개가 있어서 select_one이 아닌 select를 사용하셨거든요. 이렇게 넣으면 왜 오류가 나는지 궁금해서 글을 남깁니다. 인터넷에 select와 select_one의 차이에 대해 찾아 봤으나 답을 얻지는 못해 문의드리게 되었습니다. 소중한 강의로 코딩을 알아가게 해주신 점 다시 한번 감사드립니다. ^^ #해당 코드import requestsfrom bs4 import BeautifulSoupres = requests.get('http://corners.gmarket.co.kr/Bestsellers?viewType=G&groupCode=G06')soup = BeautifulSoup(res.content, 'html.parser')# 2022.09.13 수정사항 (웹사이트 코드가 수시로 변경되면서, best-list class 를 가진 태그가 하나이기 때문에 해당 태그만 선택하도록 수정)bestitems = soup.select('div.best-list') # select_one() 은 해당 조건에 맞는 태그 하나만 선택하는 함수products = bestitems.select('ul > li')for index, product in enumerate(products): title = product.select_one('a.itemname') price = product.select_one('div.s-price > strong') print (title.get_text(), price.get_text(), title['href']) #문의 내용bestitems = soup.select('div.best-list') ^찾는 값이 1개인 경우에는 무조건 one을 적어야 하는 것일까요?
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
db 연결 후, "/dummy" 요청 시 결과 페이지
안녕하세요? 또 한번 문의 드립니다ㅜㅠ (지난 번 AWS는 아직 해결을 못했습니다. 일단 패스하고 다른 강의부터 듣고 있습니다) mysql 연동 후, 쿼리 작성하고, 서버 띄운 후 결과가 선생님의 페이지 양식과 조금 달라서 이점이 조금 의아합니다. 선생님 결과는 아래와 같이 나오는데, 제 결과는 이렇게 나옵니다. 내용 상에는 차이가 없지만, 선생님 처럼 가독성 좋게 출력이 안되는데요. 이유가 뭔지, 수정할 수 있는지 여쭙고 싶습니다! 오늘도 감사드립니다. 좋은 하루 되세요!
-
미해결실전! Querydsl
스칼라 서브쿼리 작성시 limit 관련
안녕하세요. Querydsl 이용한 select절 서브쿼리 사용시 질의사항 있어 글남깁니다. 스칼라 서브쿼리 작성 중에 limit를 걸어 하나만 출력해야 하는 로직이 있는데, 실제 쿼리 나가는것을 보니 limit가 적용이 안되더라구요. 혹시 이런 경우에 어떤 방식으로 처리하셨는지 궁금합니다 !
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
org.hibernate.TransientPropertyValueException 질문드립니다.
https://www.inflearn.com/course/ORM-JPA-Basic/lecture/21720?tab=curriculum&volume=1.00 프로젝션(SELECT) 강의 4분쯤 보던중 오류를 만나게 되었습니다. java.lang.IllegalStateException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing : jpql.domain.Member.team -> jpql.domain.Team at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:151) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188) at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1366) at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1349) at jpql.JpqlMain.main(JpqlMain.java:27) 찾아보던 중 ManyToOne 또는 OneToMany 관계시 Team의 FK 값 을 영속화 하지 않은 채 Member를 영속화 하여 오류가 난다고 하여 2가지 해결책을 찾아보았습니다. 1. Team 을 생성후 영속화, 그리고 member.setTeam(team) 으로 팀을 멤버에 추가 2. @ManyToOne(cascade=CascadeType.ALL) 로 영속성 전이 설정 하지만, 강의를 보던중 4:20 초 영상을 보니 강사님의 예제 실행시 TEAM_ID 는 NULL로 들어간 것이 확인 되었습니다. 위의 1번은 Team을 set 했기 때문에 FK 가 당연히 있었고, 2 번을 실행시 FK 값은 있었지만 Team의 name이 Null로 값이 들어가 있었습니다. @ManyToOne의 optional이나, mappedBy의 nullable에 대해 설정은 하시지 않은거같은데 제가 빠트린 무언가 있을까요 ?! Member.java ``` @Entitypublic class Member { public Member(){ } @Id @GeneratedValue private Long id; private String username; private int age; @ManyToOne @JoinColumn(name = "TEAM_ID", nullable = true) private Team team = new Team(); ``` > Team.java ``` @Entitypublic class Team { public Team() { } @Id @GeneratedValue private Long id; private String name; @OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>(); ``` > JpqlMain.java ``` Member member1 = new Member();member1.setUsername("member1");member1.setAge(35);em.persist(member1);em.flush();em.clear();List<Member> result = em.createQuery("SELECT m FROM Member m", Member.class) .getResultList();Member findMember = result.get(0);findMember.setAge(28);tx.commit(); ```
-
미해결파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
크롬 개발자 도구로 select copy를 했는데 데이터에 아무것도 안 담기는 경우에는 어떻게 해야 할까요?
res=requests.get('https://m.stock.naver.com/') soup=BeautifulSoup(res.content,'html.parser') data=soup.select('#content > div.ct_wrp > div.ct_box.trend_box._home_trend_wrapper > div.trend_tbl_wrp._trend_contents > table > tbody > tr:nth-child(1) > td:nth-child(3) > span') print(data) for item in data: print(item) 로 코드를 돌려봤는데 그냥 데이터에 아무 것도 담기지 않아서 []만 출력되더라구요. select를 개발자 도구에서 copy해서 넣은건데 문제가 무엇일까요?