https://github.com/arillo/silverstripe-instagram-scraper
SilverStripe Instagram Scraper
https://github.com/arillo/silverstripe-instagram-scraper
Last synced: 4 months ago
JSON representation
SilverStripe Instagram Scraper
- Host: GitHub
- URL: https://github.com/arillo/silverstripe-instagram-scraper
- Owner: arillo
- Created: 2018-01-10T13:14:43.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2019-09-25T10:03:49.000Z (almost 7 years ago)
- Last Synced: 2025-03-31T10:04:41.051Z (over 1 year ago)
- Language: PHP
- Homepage: https://github.com/arillo/silverstripe-instagram-scraper
- Size: 18.6 KB
- Stars: 4
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SilverStripe Instagram Scraper
## Introduction
This module provides a scraper task to fetch **recent** records by hashtag,
username or location. Records will are persisted in database (InstagramRecord).
## Requirements
* php ^7.0.0
* ext-json
* guzzlehttp/guzzle ^6.2
* phptek/jsontext ^1.0.1
* nathancox/codeeditorfield ^1.3
* colymba/gridfield-bulk-editing-tools 2.1.x-dev
## Installation
```
composer require arillo/silverstripe-instagram-scraper
```
## Usage
For fetching instagram records you can run
Arillo\InstagramScraper\Tasks\ScraperTask with the following parameters:
* type (hashtag, username or location)
* subject (the query for the given type)
You can run following tasks through the commandline (e.g. with cronjobs).
### Query by hashtag
```
php framework/cli-script.php dev/tasks/Arillo-InstagramScraper-Tasks-ScraperTask type=hashtag subject=
```
### Query by username
```
php framework/cli-script.php dev/tasks/Arillo-InstagramScraper-Tasks-ScraperTask type=username subject=
```
### Query by location
```
php framework/cli-script.php dev/tasks/Arillo-InstagramScraper-Tasks-ScraperTask type=location subject=
```
Or you can run them via the dev/tasks section in your browser.
### Work with instagram records
Fetch records by topic:
```php
public function getInstagramRecords()
{
// get records by topic (subject & type)
$records = InstagramRecord::by_topic(, );
// $records is a data list, the query can be modified...
return $records
->exclude('Hidden', true)
->limit(10)
->sort('TakenAtTimestamp DESC')
;
}
```
Template usage example:
```html
<% if $InstagramRecords.Exists %>
<% loop $InstagramRecords %>
<% end_loop %>
<% end_if %>
```
## Notes
* There might be problems to fetch data from Instagram caused by rate limiting.
* Please note that Instagram might change access permissions to the API endpoint
used by this module.
## Contribute
If you find a bug or you have feature request, please post an issue and/or send
a pull request.