일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 셀레니움
- 알고리즘
- Crawling
- flask
- string to list
- plotly dash
- NLP
- 백준
- colab runtime
- Chat-GPT
- kmeans
- Merge Repositories
- 코랩 런타임
- convert to shp
- geoDataFrame
- 해시태그
- geopandas
- 플라스크
- 인스타그램
- python buildpacks
- 혁신성장부문
- to shp
- 웹페이지
- 2164 카드2
- Selenium
- 크롤링
- 괄호 문제
- Python
- 파이썬
- clustering
- Today
- Total
목록크롤링 (9)
코딩코딩코딩
지난번 글은 셀리니움을 통해 유튜브에서 필터링 설정을 했습니다. 이번에는 셀레니움으로 접속하는 것이 아니라 url을 미리 설정하여 접속한 뒤 크롤링을 진행하도록 하겠습니다. 이후에 셀레니움으로 접속해서 필터링을 설정한 후 크롤링할 예정입니다. import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC def get_image_title(url): # 웹 드라이버 초기화 driver_path = "..
셀레니움을 사용해서 Youtube 검색창 - 필터 설정 # Import Library import requests from bs4 import BeautifulSoup import time import urllib.request from selenium.webdriver import Chrome import re from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys import datetime as dt 필요한 라이브러리를 불러옵니다. 셀레니움을 사용하기 위해서는 최신 크롬버전, chromedriver.exe 파일이 필요합니다. path = "C:\\Users\\Rectwork..
이전까지 작성했던 내용들은 인스타그램 게시물을 모두 가져오고 난 후에 데이터프레임 형식으로 변환하여 기간을 설정하려고 했었습니다. 이번에는 코드를 수정하여 기간을 설정하고 난 후에 함수를 실행해 그 기간 사이에 있는 게시물들만 크롤링해오려고 합니다. 기존 selenium에서 page scroll을 통해 모든 게시물의 링크를 가져온 후 링크를 읽어들였는데, 이 방법이 아니라 링크를 가져온 후 하나하나씩 읽어가며 날짜를 비교하는 방식으로 코드를 짰습니다. 최초 스크롤 시 게시물이 33개 읽히며 이후 스크롤마다 12개의 게시물을 읽을 수 있습니다. 이 때 임시 리스트를 만들어서 12개의 게시물을 추가한 후 12개의 게시물 모두 설정 기간 내에 존재하지 않는 글이면 함수를 종료하는 방식입니다. (게시물 중간중간..
지난 번 마지막 코드에서 인스타그램 pc버전에서는 중간에 뜬금없는 날짜의 게시물이 올라와서 다음 게시글의 시간과 비교하는 코드를 넣었었습니다. 이렇게 해보니 코드 효율성이 너무 떨어서 시간이 배로 걸려 코드를 수정했습니다. 다음 게시글의 timestamp를 확인하는 것이 아니라 전 게시물의 것을 확인해서 비교했습니다. 전 게시물 같은 경우에는 date_list라는 리스트에 이미 날짜를 변환해서 넣어놨기 때문에 날짜를 다시 timestamp로 변환하는 과정을 거친 후, timestamp 기준 하루(86400) 이상 차이가 나면 pass하도록 했습니다. 추가적으로 계정 명에 shared on instagram 같은 것이 포함돼서 수정하는 코드도 포함했습니다. def to_timestamp(std_date):..
앞에서 했던 작업들을 모두 함수로 만들어서 작업했습니다. # Create Empty List & Parameter Setting url = 'http://www.instagram.com' path = 'C:\\Users\\rectworks\\Downloads\\chromedriver_win32\\chromedriver.exe' SCROLL_PAUSE_TIME = 3.0 ID = 'user_id' PW = 'password' post_link = [] popularPost_len = [] id_list = [] like_list = [] tag_list = [] link_list = [] date_list = [] month_list = [] day_list = [] def instagram_login(i..
지난 번 내용과 이어서 해시태그와 좋아요, 날짜등을 가져오는 함수를 만들어보도록 하겠습니다. SCROLL_PAUSE_TIME = 2.0 post_link = [] while True: pageString = driver.page_source # page_source : 현재 렌더링된 페이지의 Elements를 모두 가져옴 bsObj = bs(pageString, 'lxml') for postline in bsObj.find_all(name='div', attrs={"class":"Nnq7C weEfm"}): a_len = len(postline.select('a')) # 인스타그램 게시물은 행별로 최대 3개까지 확인할 수 있는데, 최근게시물이나 마지막 게시물은 1,2개가 나올 수도 있어서 len 지정 f..