• Stars
    star
    1,240
  • Rank 37,884 (Top 0.8 %)
  • Language
    Python
  • License
    BSD 3-Clause "New...
  • Created over 8 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

DOM Traversing and Scraping using GraphQL

GDOM

GDOM is the next generation of web-parsing, powered by GraphQL syntax and the Graphene framework.

Install it typing in your console:

pip install gdom

DEMO: Try GDOM online

Usage

You can either do gdom --test to start a test server for testing queries or

gdom QUERY_FILE

This command will write in the standard output (or other output if specified via --output) the resulting JSON.

Your QUERY_FILE could look similar to this:

{
  page(url:"http://news.ycombinator.com") {
    items: query(selector:"tr.athing") {
      rank: text(selector:"td span.rank")
      title: text(selector:"td.title a")
      sitebit: text(selector:"span.comhead a")
      url: attr(selector:"td.title a", name:"href")
      attrs: next {
         score: text(selector:"span.score")
         user: text(selector:"a:eq(0)")
         comments: text(selector:"a:eq(2)")
      }
    }
  }
}

Advanced usage

If you want to generalize your gdom query to any page, just rewrite your query file adding the $page var. So should look to something like this:

query ($page: String) {
  page(url:$page) {
    # ...
  }
}

And then, query it like:

gdom QUERY_FILE http://news.ycombinator.com

More Repositories

1

pyjade

Jade template system for Django, Jinja2 and Mako
Python
696
star
2

Flask-SuperAdmin

The best admin interface framework for Flask. With scaffolding for MongoEngine, Django and SQLAlchemy.
Python
635
star
3

validate_email

Validate_email verify if an email address is valid and really exists
Python
544
star
4

snapshottest

Snapshot Testing utils for Python ๐Ÿ“ธ
Python
529
star
5

react-native-refresher

A pull to refresh ListView for React Native completely written in js.
JavaScript
453
star
6

promise

Ultra-performant Promise implementation in Python
Python
352
star
7

aiodataloader

Asyncio DataLoader for Python3
Python
270
star
8

interpy

Ruby like string interpolation #{} in Python
Python
254
star
9

fastdiff

A fast native implementation of diff algorithm with a pure Python fallback
Python
37
star
10

jsjinja

Jinja2 to Javascript template converter. Now you can render your Jinja2 templates on the client side! ;)
Python
33
star
11

Djinja

(Deprecated) A package that makes possible the integration of Jinja2 in Django, in a clean way.
Python
20
star
12

Webclient-Kohana

Kohana Utilities
PHP
8
star
13

syrusakbary.com

My personal webpage
CSS
6
star
14

django-processorfield

A powerful filefield for Django with multiple processor outputs
Python
5
star
15

PlagiarismDetector-PHP

A Plagiarism Detector system made in PHP
PHP
4
star
16

graphqlprimer

Graphene Twitter Streams Demo for the presentation at Primer.ai
Python
3
star
17

eXercita

Python
3
star
18

flask-beaker

Beaker session interface for Flask.
Python
3
star
19

wasmer-vs-docker

Wasmer vs Docker
Makefile
3
star
20

netlify-wasmer

Netlify wasmer example
2
star
21

Animotion-Java

An animation framework for java. Supports transitions and much more!
2
star
22

assetsy

A vitaminated way to minify, combine and optimize your web resources
Python
1
star
23

gulp-jade-mixins

Jade mixins js-generator plugin for Gulp
JavaScript
1
star
24

PlagiarismDetector_Block-Moodle

The PlagiarismDetector Block for Moodle
1
star
25

RobotExploration-Java

A Robot Interface
Java
1
star
26

wasi-tests

Shell
1
star
27

wasmer_rust_playground

Playground for the Wasmer Rust Integration
Rust
1
star
28

django-vagrant-base

Automatically deploy Django site locally with Vagrant
Ruby
1
star
29

PlagiarismDetector_Mod-Moodle

The PlagiarismDetector platform for Moodle
PHP
1
star
30

FuzzyUppaal-Java

An implementation of the Uppaal modeling system for the support of fuzzy logic.
Java
1
star
31

tuentify

Te avisa al instante de tus notificaciones pendientes en Tuenti y agiliza la carga de la pรกgina.
JavaScript
1
star