Selenium based Instagram Scraper
Project description
Selenium based Instagram scraper
Note that is project is currently in alpha: APIs can and will change without warning.
Currently support functionality:
Log into Instagram
Handle the mobile app related popups
Planned functionality in upcoming release(s):
Return all posts from Home page
Example usage:
from selenium import webdriver
from instabrade import Instagram
my_username = "my username"
my_password = "my password"
driver = webdriver.Chrome()
try:
# Instantiate the object
# - This also loads instagram's URL
ig = Instagram(driver)
# Click the "Log in" link to display the login fields
ig.log_in_page.log_in_link_click()
# Fill in the username and password fields
ig.log_in_page.log_in_username = my_username
ig.log_in_page.log_in_password = my_password
# Click the Log In button
ig.log_in_page.log_in_button_click()
finally:
driver.quit()
Instabrade is page-aware. If you attempt to interact with a property or method for a page that isn’t currently loaded, a WrongPageError exception will get thrown:
In [1]: from selenium import webdriver
In [2]: from instabrade import Instagram
In [3]: driver = webdriver.Chrome()
In [4]: ig = Instagram(driver)
In [5]: ig.log_in_page.log_in_link_click()
In [6]: ig.log_in_page.log_in_username = my_username
In [7]: ig.log_in_page.log_in_password = my_password
In [8]: ig.log_in_page.log_in_button_click()
In [9]: ig.log_in_page.log_in_username = my_username
---------------------------------------------------------------------------
WrongPageError Traceback (most recent call last)
<ipython-input-9-eb1e96eabcf5> in <module>()
----> 1 ig.log_in_page.log_in_username = my_username
/Users/levi/workspace/instabrade/instabrade/decorators.py in inner(obj, *args, **kwargs)
7 @wraps(func)
8 def inner(obj, *args, **kwargs):
----> 9 obj.assert_on_page()
10
11 return func(obj, *args, **kwargs)
/Users/levi/workspace/instabrade/instabrade/base.py in assert_on_page(self)
64 exc_msg = "Wrong page loaded. Expected {0} but found {1}"
65 raise WrongPageError(exc_msg.format(self.PAGE_IDENTIFIER,
---> 66 current_page_identifier))
67
68 @property
WrongPageError: Wrong page loaded. Expected
PageID(name='Log In Page Identifier', css_path='h1.coreSpriteLoggedOutWordmark', attr='class', attr_value='coreSpriteLoggedOutWordmark')
but found
PageID(name='Home Page Identifier', css_path='main[role="main"] > section a[href$="explore/"]', attr='href', attr_value='/explore/')
In [10]:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file instabrade-0.0.7.tar.gz.
File metadata
- Download URL: instabrade-0.0.7.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6ccb936242c8510dd3f34f4080cae14f21ded409e6f448510fbf3e69999991b
|
|
| MD5 |
d8612a73731b029596e465957bb5760b
|
|
| BLAKE2b-256 |
e6de965721616d2c794f8659e98477330b9522c9c75e1fed6d1531e42904b187
|
File details
Details for the file instabrade-0.0.7-py2.py3-none-any.whl.
File metadata
- Download URL: instabrade-0.0.7-py2.py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b313e99d85649e4376ffbd5adc3227978e8cf0c4231a8990bdb4ca69fe8e59f
|
|
| MD5 |
fa9a79ef72e4ef84eef6d600e74cd124
|
|
| BLAKE2b-256 |
41e18a71939d16b428127ad755c6048cbeb20158790b6b410f78eaa3ce543eb5
|