Amazon의 주문 우편에서 정규 형식으로 상품 링크 추출

2298 단어 regex
어메이존의 주문 메일에서 자뷰어로 상품 링크를 빼고 싶은 경우가 있다.정규 표현식으로 상품 링크만 빼고 싶었지만, 파이썬 레귤러 익스프레스라는 파이썬 특유의 정규 표현이어서 힘들었다고 적어뒀다.

정규 표현식이 생성됨

(https?://www\.amazon\.co\.jp/gp/r\.html\?[\w.-?/%&=:]+_TE_item_image)
메일을 주문하는 HTML 본문에는 https://www.amazon.co.jp/gp/r.html?로 시작하는 URL이 여러 개 있습니다.따라서 마지막 첨부_TE_item_image된 URL만 추출하면 OK.

정규 표현식 만들기


예상된 패턴이 일치하지 않거나 정규 표현식 생성기 등도 순조롭게 진행되지 않을 경우 VScode 등 편집된 검색 기능을 통해 필요한 정규 표현식을 하나씩 추가해 성냥 범위의 확장을 확인하면서 제작할 수 있다.

정규 표현식 검색 모드.*를 열고 정규 표현식<td class="name"([\s\w=":(]*)처럼 증가[]*.신경 쓰이는 것은 - 이후에 가져오는 말>이 맞지 않는다는 것이다.나는 하이픈이 정규 표현에서 특별한 뜻이 없다고 생각한다. 상세한 사람이 있으면 나에게 알려줘.

<td class="name"([\s\w></.?&%=":(,);-]*)> ([\w\W]*) </a> <br /> ([\W\w]*) <br /> 販売

기본 정규 표현식

\   直後の文字をエスケープ。ただし[]の中ではこれをかかなくても.や?はエスケープされるよう
.   任意の一文字
?   直前の文字もしくはグループが0個か1個。つまりhttpでもマッチするようs?とする
()  グループ。これでくくれば1文字として扱われる。(aaa)?は何もないか、aaaになる。
[] 呼び方不明。この角括弧に含まれるいずれか1文字にマッチ
\w  [0-9A-Za-z_] と同じ意味。半角英数字とアンダーバーにマッチ
*   直前の文字が 0回以上 繰り返す場合にマッチ
+   直前の文字が 1回以上 繰り返す場合にマッチ
ZApier의 공식 도움말에 따라 Extract Pattern에서 텍스트를 추출하려면 ()로 둘러싸야 합니다.
In order to have this step return text in its output, you must include a capture group in your regex.
실제 링크 목적지에서 최종적으로 리디렉션된 상품 URL이 중도&T=C&U= 이후 조회로 부여(단 http://에서는 SSL화되지 않음)됐기 때문에 Extract URL 처리를 원하는 URL을 추가로 추출했다.

참조 링크

  • https://developers.google.com/edu/python/regular-expressions
  • https://www.ipentec.com/document/regularexpression-url-detect
  • 좋은 웹페이지 즐겨찾기