일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Dependency Injection
- Django 특정 값 가져오기
- table cell size
- Dependency
- html cell size
- table tag
- Django column 값 가져오기
- Spring
- DI
- html cell
- Django
- html
- Today
- Total
emluy 개발 일기
python - Crawling 의류 데이터 크롤링 본문
0. 파이썬 설치 & 주피터 노트북 설치(cmd)
- 파이썬 설치
- 파이썬 환경 변수 설정
- 주피터 노트북 설치
[Crawling] 전국 스타벅스 매장 정보 .. : 네이버블로그 (naver.com)[Crawling] 전국 스타벅스 매장 정보 .. : 네이버블로그 (naver.com)
[Crawling] 전국 스타벅스 매장 정보 가져오기
/** 2019.12.29 가독성을 높이기 위해서 문장을 나누거나 한 문장을 여러 줄로 작성하였습니다. 사전 형식...
blog.naver.com
1. 자동 클릭(selenium) & selector로 element 가져오기 (Beautifulsoup)
네이버 영화 리뷰 크롤링(Crawling) By Selenium | Seungho's Blog
네이버 영화 한줄평 네이버 영화 한줄평 사이트를 크롤링 하는 코드입니다. Selenium에 대한 자세한 설명은 생략하고, 코드를 어떻게 짰는지 간단하게만 설명하겠습니다. 이 데이터를 활용하여 간
smothly.github.io
2. xpath 문법
TIL #23 : [HTML] XPATH 문법과 selenium에 XPATH 이용하기
XPATH이 무엇인지, 그리고 selenium과 함께 어떻게 사용되는지 정리
velog.io
https://wkdtjsgur100.github.io/selenium-xpath/
(python) selenium에서 xpath를 이용해 크롤링 하기
selenium으로 특정 element를 가져올 때, 가져오고 싶은 element가 다른 element 안에 있을 경우에 그 특정 element를 쉽게 가져올 수 있는 방법 중 하나인 xpath를 사용해 element를 가져오는 방법에 대해서 작
wkdtjsgur100.github.io
3. 이미지 크롤링
https://youngq.tistory.com/7?category=764296
파이썬 웹 크롤링 초급(with, Selenium) (2/2)
파이썬을 이용한 웝 크롤링 (python web crawling with Selenium) 본문에서는 파이썬을 이용한 웹 크롤러 제작에 대한 내용을 다룹니다. 이전 포스터의 연장입니다. 내용 이해를 위하여 이전 포스트 확인
youngq.tistory.com
4. 그외
https://wayhome25.github.io/python/2017/04/25/cs-27-crawling/
# 크롤링 모듈 임포트
from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd
import time
import csv
import urllib.request
import openpyxl
wb = openpyxl.Workbook()
# 한섬 홈페이지 접속
browser = webdriver.Chrome('chromedriver.exe')
url = 'http://www.thehandsome.com/ko/c/ou_we014/ou#1_0_0_0_0_641_0_0_0'
browser.get(url)
count=1
brand=[]
productname=[]
price=[]
productid=[]
longdetail=[]
shortdetail=[]
productcolor=[]
productsize=[]
productimage=[]
productlist=wb.active
columns = ['id','brand','sex','maincategoryId','subcategoryId','title','price','longdetail','shortdetail','color','size','imagePath']
productlist.append(columns)
//2페이지까지만
for k in range(2):
print('page')
print(k+1)
time.sleep(4)
//페이지 클릭
locates=f'//*[@id="bodyWrap"]/div[2]/div[2]/span/a[{k+1}]'
page = browser.find_element_by_xpath(locates)
page.send_keys('\n')
url = browser.current_url
item_xpath = []
//페이지마다 12개의 상품 클릭
for i in range(12):
locates=f'//*[@id="listBody"]/li[{i+1}]/div'
item_xpath.append(locates)
for xpath in item_xpath:
time.sleep(6)
browser.find_element_by_xpath(xpath).click()
time.sleep(3)
html = browser.page_source
soup = BeautifulSoup(html, 'html.parser')
//상품 상세 정보 크롤링
locates='//*[@id="contentDiv"]/div[1]/div[1]/h4/div/a[1]'
brand=browser.find_element_by_xpath(locates).text
locates='//*[@id="contentDiv"]/div[1]/div[1]/h4/span'
productname=browser.find_element_by_xpath(locates).text
locates='//*[@id="contentDiv"]/div[1]/div[1]/p[1]/span[1]'
price=browser.find_element_by_xpath(locates).text
price=price[1:]
locates='//*[@id="contentDiv"]/div[1]/div[1]/div[2]/strong/span'
productid=browser.find_element_by_xpath(locates).text
locates='//*[@id="contentDiv"]/div[1]/div[1]/div[2]/div/p'
longdetail=browser.find_element_by_xpath(locates).text
locates='//*[@id="contentDiv"]/div[1]/div[1]/div[2]/li'
shortdetail=browser.find_element_by_xpath(locates).text
locates='#contentDiv > div.info > div:nth-child(5) > ul > li:nth-child(1) > div > ul > li'
colors=soup.select(locates)
//색상 여러개인 경우 색상마다 색상코드와 이미지저장
j=1;
for color in colors:
style = color.select('a')[0]['style']
stylesplit = style.split()
for word in stylesplit:
if 'background' in word:
productcolor = word[12:18]
print(productcolor)
locates=f'//*[@id="contentDiv"]/div[1]/div[4]/ul/li[1]/div/ul/li[{j}]/a'
colorimage=browser.find_element_by_xpath(locates)
colorimage.send_keys('\n')
time.sleep(1)
locates='//*[@id="imageDiv"]/ul/li[1]/img'
productimage=browser.find_element_by_xpath(locates)
productimage=productimage.get_attribute('src')
urllib.request.urlretrieve(productimage,'../img/woman/top/neat/'+str(count)+'.jpg')
//size여러개인 경우 사이즈마다 데이터 저장
locates = '#contentDiv > div.info > div:nth-child(5) > ul > li:nth-child(2) > span.txt > ul > li'
sizes=soup.select(locates)
for size in sizes:
s = size.select('a')[0].text
s = s.split()
productsize = s[0]
print(productsize)
productlist.append([productid,brand,'w','2','10',productname,price,longdetail,shortdetail,productcolor,productsize,count])
j=j+1
count=count+1;
time.sleep(2)
browser.get(url)
time.sleep(5)
locates=f'//*[@id="bodyWrap"]/div[2]/div[2]/span/a[{k+1}]'
page = browser.find_element_by_xpath(locates)
page.send_keys('\n')
//엑셀 저장
wb.save('../product/woman/top/neat/woman_top_neat.xlsx')
'웹 개발 > project' 카테고리의 다른 글
Trip surfer - #1 Geodjango, PostGIS, googlemap 중 Trip surfer 구현 시 필요한 것 고르기 (0) | 2020.10.30 |
---|---|
Trip surfer - # 0 Docker Django PostgreSQL (0) | 2020.10.13 |
특허관점기업분석 - ajax로클릭 시 새로고침 안하고 DB에서 값 가져온 후 띄워주기 (0) | 2020.06.18 |