파이썬 BeautifulSoup 정규표현식으로 찾기
조회수 2267회
사진과 같은 QTY칸의 숫자를 일괄 수정하고 싶습니다.
각 QTY칸의 코드는 txtAvailableQTY_0, txtAvailableQTY_1,txtAvailableQTY_2 처럼 뒷자리 숫자만 바뀌는 코드입니다.
해서 정규표현식을 사용하여 코드를 만들었는데 계속 에러만 납니다.
html = driver.page_source
soup = BeautifulSoup(html,'html.parser')
QTY = soup.find(id=re.compile('rpQuickEdit_txtAvailableQTY_[0-9]{1,2}'))
for i in range(5):
if QTY is True:
driver.find_element_by_css_selector(QTY).click()
action = ActionChains( driver )
action.send_keys( Keys.BACKSPACE ).send_keys('0').perform()
코드를 이렇게 만들었는데 어느 부분이 문제인가요?
QTY칸의 숫자를 일괄 수정하고 싶습니다.
코드가 너무 길어서 짤랐는데 셀레니움과 웹드라이브도 사용중입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
find 메소드는 1개만 찾는 겁니다.
find_all 을 사용해야 합니다.
아래 샘플 참고하세요.
html = ''' <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" version="XHTML+RDFa 1.0" dir="ltr" class="js"> <body> <div id="aaaa_0">aaaa</div> <div id="aaaa_1">bbbb</div> <div id="bbbb_0">bbbb</div> </body> </html> ''' import re import bs4 bs = bs4.BeautifulSoup(html, 'html.parser') bs.find_all(id=re.compile('aaaa_[0-9]{1,2}')) [<div id="aaaa_0">aaaa</div>, <div id="aaaa_1">bbbb</div>]
-
for i in random(5): QTY = soup.find(id='rpQuickEdit_txtAvailableQTY_' + str(i))) if QTY is not None : # soup.find() 는 찾는것이 없을 경우 None 이 반환됨
댓글 입력