zara.com 사이트에서 데이터를 스크랩하려고합니다. 목록에있는 항목 그룹으로 상위 요소를 구문 분석하는 방법을 이미 알고 있지만 더 깊이 파고 각 항목 링크를 열고 이에 대한 추가 정보를 얻고 싶습니다. .
그래서 저는 이런 종류의 코드를 사용했습니다.
import requests
import time
from bs4 import BeautifulSoup
ListWithRequests = ['https://www.zara.com/nl/en/plain-shirt-p06608389.html'] # In this example only one item
for item in ListWithRequests:
response = requests.get(item,verify=False)
soup2 = BeautifulSoup(response.text, "html.parser")
soup2.prettify()
time.sleep(1)
f = open("demo.html","w+")
f.write(response.text)
예를 들어 항목의 가격을 받고 싶습니다. 개발 도구에서는 블록입니다.
<span class="main_price">25.95 EUR</span>
또는 항목 ID
<div clas="product-info-wrapper _product-info">
<p class="product-color">
<span class="_colorName">**White**
</span>
</p>
</div>
그러나 demo.html 파일 에서 완전히 다른 트리를 수신하고 있으며 필요한 요소를 찾을 수 없습니다.
내가 뭘 잘못하고 있는지 조언하십시오
페이지를 통해로드 JavaScript
따라서, bs4
그것을 렌더링 할 수 없습니다. selenium
이러한 경우에 사용할 수 있지만 찾고있는 데이터가 실제로 script
태그 내에 표시되어 쉽게로드 할 수 JSON
있거나 빠른 캐치를 위해 re
다음을 사용했습니다 .
import requests
import re
def main(url):
r = requests.get(url)
price = re.search(r'\"price\": \"(.*?)\"', r.text).group(1)
print(price)
main("https://www.zara.com/nl/en/plain-shirt-p06608389.html")
산출:
25.95
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다