1seok2

add login, select followers

......@@ -4,3 +4,7 @@ node_modules
chromedriver
key.py
admin.py
venv
venv3
\ No newline at end of file
......
......@@ -7,8 +7,11 @@
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
<excludeFolder url="file://$MODULE_DIR$/venv3" />
</content>
<orderEntry type="jdk" jdkName="Python 3.8 (venv3)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
......
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_11" project-jdk-name="11" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (venv3)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
......
INSTAGRAM_URL="https://instagram.com"
\ No newline at end of file
File mode changed
import time
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from config.admin import ID, PW
from config.URLs import INSTAGRAM_URL
BASE_URL = "https://instagram.com"
def login(driver):
elem = driver.find_elements_by_css_selector('._9GP1n .f0n8F ._2hvTZ')
elem[0].send_keys(ID)
elem[1].send_keys(PW)
elem[1].send_keys(Keys.RETURN)
time.sleep(1)
def get_list(insta_id, driver):
navigations = driver.find_elements_by_class_name('-nal3')
navigations[1].click()
def crawler_instagram(insta_id):
driver = webdriver.Chrome(executable_path='./chromedriver')
driver.get(url=INSTAGRAM_URL)
time.sleep(4)
login(driver)
time.sleep(5)
url="%s/%s"%(INSTAGRAM_URL, insta_id)
driver.get(url=url)
time.sleep(2)
try:
isPrivate = driver.find_element_by_class_name('rkEop').text
except Exception as e:
isPrivate = ""
pass
# 비공개 계정인 경우
if isPrivate:
print('private!!')
# 공개 계정인 경우
else:
nav = get_list(insta_id, driver)
time.sleep(2)
URL = "%s/%s" % (BASE_URL, insta_id)
driver.get(url=URL)
sleep(10)
# driver.close()
driver.close()
return nav
if __name__ == "__main__":
......
import os
from config.firebase import db
from flask import Flask, render_template, request
from config.firebase import db
from crawler.crawler_instagram import crawler_instagram
# data = {
# "age": 24,
# "name": "choi",
......@@ -25,8 +27,9 @@ def home():
@app.route("/check", methods=["POST"])
def check():
value = request.form['insta_id']
return value
insta_id = request.form['insta_id']
crawler_instagram(insta_id)
if __name__ == "__main__":
......