mirror of
https://github.com/bellingcat/instagram-location-search.git
synced 2026-06-10 11:38:28 +03:00
Compare commits
6 Commits
image-edit
...
fix-cookie
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6cc32ce7e4 | ||
|
|
6d0f4ac372 | ||
|
|
19ccd8f957 | ||
|
|
068f7ca9b9 | ||
|
|
2a47ea1583 | ||
|
|
c5389544aa |
@@ -7,14 +7,10 @@ from datetime import datetime, timezone
|
||||
from itertools import product
|
||||
from statistics import pstdev
|
||||
from string import Template
|
||||
from selenium import webdriver
|
||||
from selenium.webdriver.chrome.service import Service as ChromiumService
|
||||
from webdriver_manager.chrome import ChromeDriverManager
|
||||
from webdriver_manager.core.utils import ChromeType
|
||||
from time import sleep
|
||||
|
||||
import requests
|
||||
|
||||
import pathlib
|
||||
|
||||
# gets instagram "locations" around a particular lat/lng using internal API
|
||||
# (requires session cookie for authentication)
|
||||
@@ -119,14 +115,19 @@ def encode_date(date_str: str):
|
||||
|
||||
|
||||
def get_insta_cookies():
|
||||
from selenium import webdriver
|
||||
from selenium.webdriver.chrome.service import Service as ChromiumService
|
||||
from webdriver_manager.chrome import ChromeDriverManager
|
||||
from webdriver_manager.core.os_manager import ChromeType
|
||||
"""
|
||||
Attempts to run selenium, provide user with the login form and extract cookies from page to be used in program.
|
||||
Returns cookies formatted as name=value;name=value;...
|
||||
"""
|
||||
path = str(pathlib.Path.home() / ".instagram_location_searcher" / "data")
|
||||
options = webdriver.ChromeOptions()
|
||||
options.add_argument(r"--user-data-dir=~/.instagram_location_searcher/data")
|
||||
options.add_argument(r'--profile-directory=~/.instagram_location_searcher/profile')
|
||||
driver = webdriver.Chrome(options=options, service=ChromiumService(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install()))
|
||||
options.add_argument(f"user-data-dir={path}")
|
||||
options.add_argument(f"profile-directory=profile")
|
||||
driver = webdriver.Chrome(options=options, service=ChromiumService(ChromeDriverManager(chrome_type=ChromeType.GOOGLE).install()))
|
||||
driver.get("https://www.instagram.com/")
|
||||
# Check that there is cookie with name sessionid (mean we logged in)
|
||||
cookies = driver.get_cookies()
|
||||
@@ -261,4 +262,4 @@ def main():
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
main()
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
|
||||
_MAJOR = "1"
|
||||
_MINOR = "2"
|
||||
_MINOR = "3"
|
||||
# On main and in a nightly release the patch should be one ahead of the last
|
||||
# released build.
|
||||
_PATCH = "0"
|
||||
_PATCH = "1"
|
||||
# This is mainly for nightly builds which have the suffix ".dev$DATE". See
|
||||
# https://semver.org/#is-v123-a-semantic-version for the semantics.
|
||||
_SUFFIX = ""
|
||||
|
||||
2
setup.py
2
setup.py
@@ -15,7 +15,7 @@ setuptools.setup(
|
||||
long_description_content_type="text/markdown",
|
||||
url="https://www.bellingcat.com",
|
||||
license="MIT License",
|
||||
install_requires=["requests", "instagram-scraper"],
|
||||
install_requires=["requests", "numpy", "pandas", "selenium", "webdriver-manager"],
|
||||
classifiers=[
|
||||
'Intended Audience :: Information Technology',
|
||||
'License :: OSI Approved :: MIT License',
|
||||
|
||||
Reference in New Issue
Block a user