Toggle navigation
Toggle navigation
This project
Loading...
Sign in
최원석
/
2021-1-database-project
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
1seok2
2021-03-07 20:47:05 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
8ac1b0d329d28b8a5797b5732edd23b9769dc34b
8ac1b0d3
1 parent
9d27fb98
add select followings, uploading to firebase
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
42 additions
and
18 deletions
config/firebase.py
crawler/crawler_instagram.py
server.py
config/firebase.py
View file @
8ac1b0d
...
...
@@ -16,3 +16,13 @@ config = {
firebase
=
pyrebase
.
initialize_app
(
config
)
db
=
firebase
.
database
()
def
update_data
(
user_insta_id
,
followers
,
followings
):
insta_id
=
user_insta_id
.
replace
(
'_'
,
''
)
.
replace
(
'.'
,
''
)
data
=
{
"followings"
:
followings
,
"followers"
:
followers
}
db
.
child
(
"insta"
)
.
child
(
insta_id
)
.
update
(
data
)
...
...
crawler/crawler_instagram.py
View file @
8ac1b0d
...
...
@@ -4,6 +4,24 @@ from selenium import webdriver
from
selenium.webdriver.common.keys
import
Keys
from
config.admin
import
ID
,
PW
from
config.URLs
import
INSTAGRAM_URL
from
config.firebase
import
update_data
def
check_people
(
driver
,
type
):
result
=
[]
navigations
=
driver
.
find_elements_by_class_name
(
'-nal3'
)
if
type
==
"followers"
:
navigations
[
1
]
.
click
()
elif
type
==
"following"
:
navigations
[
2
]
.
click
()
time
.
sleep
(
1
)
elem
=
driver
.
find_elements_by_css_selector
(
'.Jv7Aj ._0imsa'
)
for
obj
in
elem
:
result
.
append
(
obj
.
text
)
return
result
def
login
(
driver
):
...
...
@@ -14,10 +32,19 @@ def login(driver):
elem
[
1
]
.
send_keys
(
Keys
.
RETURN
)
time
.
sleep
(
1
)
def
get_list
(
insta_id
,
driver
):
navigations
=
driver
.
find_elements_by_class_name
(
'-nal3'
)
# check followers
followers_list
=
check_people
(
driver
,
"followers"
)
# close followers
driver
.
find_element_by_css_selector
(
'.WaOAr .wpO6b'
)
.
click
()
time
.
sleep
(
1
)
navigations
[
1
]
.
click
()
# check followings
following_list
=
check_people
(
driver
,
"following"
)
update_data
(
insta_id
,
followers_list
,
following_list
)
def
crawler_instagram
(
insta_id
):
...
...
@@ -43,13 +70,9 @@ def crawler_instagram(insta_id):
print
(
'private!!'
)
# 공개 계정인 경우
else
:
nav
=
get_list
(
insta_id
,
driver
)
time
.
sleep
(
2
)
# driver.close()
get_list
(
insta_id
,
driver
)
return
nav
driver
.
close
()
if
__name__
==
"__main__"
:
...
...
server.py
View file @
8ac1b0d
import
os
from
flask
import
Flask
,
render_template
,
request
from
config.firebase
import
db
from
crawler.crawler_instagram
import
crawler_instagram
# data = {
# "age": 24,
# "name": "choi",
# "date": "2020.12.03"
# }
# db.child("name").child("name").update(data)
app
=
Flask
(
__name__
)
...
...
@@ -25,7 +16,7 @@ def home():
return
render_template
(
'index.html'
)
@app.route
(
"/
check
"
,
methods
=
[
"POST"
])
@app.route
(
"/
update
"
,
methods
=
[
"POST"
])
def
check
():
insta_id
=
request
.
form
[
'insta_id'
]
...
...
Please
register
or
login
to post a comment