{
"info": {
"author": "Richard Wen",
"author_email": "rrwen.dev@gmail.com",
"bugtrack_url": null,
"classifiers": [],
"description": ".. image:: https://badge.fury.io/py/search-google.svg\n :target: https://badge.fury.io/py/search-google\n.. image:: https://travis-ci.org/rrwen/search_google.svg?branch=master\n :target: https://travis-ci.org/rrwen/search_google\n.. image:: https://coveralls.io/repos/github/rrwen/search_google/badge.svg?branch=master\n :target: https://coveralls.io/github/rrwen/search_google?branch=master\n.. image:: https://img.shields.io/github/issues/rrwen/search_google.svg\n :target: https://github.com/rrwen/search_google/issues\n.. image:: https://img.shields.io/badge/license-MIT-blue.svg\n :target: https://raw.githubusercontent.com/rrwen/search_google/master/LICENSE\n.. image:: https://img.shields.io/github/stars/rrwen/search_google.svg\n :target: https://github.com/rrwen/search_google/stargazers\n.. image:: https://img.shields.io/twitter/url/https/github.com/rrwen/search_google.svg?style=social\n :target: https://twitter.com/intent/tweet?text=%23python%20%23dataextraction%20tool%20for%20%23googlesearch%20results%20and%20%23googleimages:%20https://github.com/rrwen/search_google\n\nInstall\n-------\n\n1. Install `Python `_\n2. Install `search_google `_ via ``pip``\n\n::\n \n pip install search_google\n \nFor the latest developer version, see `Developer Install`_.\n \nUsage\n-----\n\nFor help in the console::\n \n search_google -h\n \nEnsure that a `CSE ID `_ and a `Google API developer key `_ are set::\n\n search_google -s cx=\"your_cse_id\"\n search_google -s build_developerKey=\"your_dev_key\"\n\nSearch the web for keyword \"cat\"::\n \n search_google \"cat\"\n search_google \"cat\" --save_links=cat.txt\n search_google \"cat\" --save_downloads=downloads\n\nSearch for \"cat\" images::\n \n search_google cat --searchType=image\n search_google \"cat\" --searchType=image --save_links=cat_images.txt\n search_google \"cat\" --searchType=image --save_downloads=downloads\n \nUse as a Python module:\n\n.. code-block:: python\n\n # Import the api module for the results class\n import search_google.api\n \n # Define buildargs for cse api\n buildargs = {\n 'serviceName': 'customsearch',\n 'version': 'v1',\n 'developerKey': 'your_api_key'\n }\n \n # Define cseargs for search\n cseargs = {\n 'q': 'keyword query',\n 'cx': 'your_cse_id',\n 'num': 3\n }\n \n # Create a results object\n results = search_google.api.results(buildargs, cseargs)\n \n # Download the search results to a directory\n results.download_links('downloads')\n \nFor more usage details, see the `Documentation `_.\n\nContributions\n-------------\n\nReport Contributions\n********************\n\nReports for issues and suggestions can be made using the `issue submission `_ interface. \n \nWhen possible, ensure that your submission is:\n\n* **Descriptive**: has informative title, explanations, and screenshots\n* **Specific**: has details of environment (such as operating system and hardware) and software used\n* **Reproducible**: has steps, code, and examples to reproduce the issue\n\nCode Contributions\n******************\n\nCode contributions are submitted via `pull requests `_:\n\n1. Ensure that you pass the `Tests`_\n2. Create a new `pull request `_\n3. Provide an explanation of the changes\n\nA template of the code contribution explanation is provided below:\n\n::\n\n ## Purpose\n \n The purpose can mention goals that include fixes to bugs, addition of features, and other improvements, etc.\n \n ## Description\n \n The description is a short summary of the changes made such as improved speeds, implementation\n \n ## Changes\n \n The changes are a list of general edits made to the files and their respective components.\n * `file_path1`:\n * `function_module_etc`: changed loop to map\n * `function_module_etc`: changed variable value\n * `file_path2`:\n * `function_module_etc`: changed loop to map\n * `function_module_etc`: changed variable value\n \n ## Notes\n \n The notes provide any additional text that do not fit into the above sections.\n\nFor more information, see `Developer Install`_ and `Implementation`_.\n\nDeveloper Notes\n---------------\n\nDeveloper Install\n*****************\n\nInstall the latest developer version with ``pip`` from github::\n \n pip install git+https://github.com/rrwen/search_google\n \nInstall from ``git`` cloned source:\n\n1. Ensure `git `_ is installed\n2. Clone into current path\n3. Install via ``pip``\n\n::\n\n git clone https://github.com/rrwen/search_google\n cd search_google\n pip install . -I\n \nTests\n*****\n\n1. Clone into current path ``git clone https://github.com/rrwen/search_google``\n2. Enter into folder ``cd search_google``\n3. Ensure `unittest `_ is available\n4. Set your `CSE ID `_ and `Google API developer key `_\n5. Run tests\n6. Reset config file to defaults\n7. Please note that this will use up 7 requests from your quota\n\n::\n \n pip install . -I\n python -m search_google -s cx=\"your_cse_id\"\n python -m search_google -s build_developerKey=\"your_dev_key\"\n python -m unittest\n python -m search_google -d\n\nDocumentation Maintenance\n*************************\n\n1. Ensure `sphinx `_ is installed ``pip install -U sphinx``\n2. Update the documentation in ``docs/``\n\n::\n \n pip install . -I\n sphinx-build -b html docs/source docs\n\nUpload to github\n****************\n\n1. Ensure `git `_ is installed\n2. Add all files and commit changes\n3. Push to github\n\n::\n \n git add .\n git commit -a -m \"Generic update\"\n git push\n \nUpload to PyPi\n**************\n\n1. Ensure `twine `_ is installed ``pip install twine``\n2. Ensure `sphinx `_ is installed ``pip install -U sphinx``\n3. Run tests and check for OK status\n4. Delete ``dist`` directory\n5. Update the version ``search_google/__init__.py``\n6. Update the documentation in ``docs/``\n7. Create source distribution\n8. Upload to `PyPi `_\n\n::\n \n pip install . -I\n python -m search_google -s cx=\"your_cse_id\"\n python -m search_google -s build_developerKey=\"your_dev_key\"\n python -m unittest\n python -m search_google -d\n sphinx-build -b html docs/source docs\n python setup.py sdist\n twine upload dist/*\n \nImplementation\n**************\n\nThis command line tool uses the `Google Custom Search Engine (CSE) `_ to perform web and image searches. It relies on `googleapiclient.build `_ and `cse.list `_, where ``build`` was used to create a Google API object and ``cse`` was used to perform the searches.\n\nThe class `search_google.api `_ simply passed a dictionary of arguments into ``build`` and ``cse`` to process the returned results with properties and methods. `search_google.cli `_ was then used to create a command line interface for `search_google.api `_.\n\nIn order to use ``build`` and ``cse``, a `Google Developer API Key `_ and a `Google CSE ID `_ needs to be created for API access (see `search_google Setup `_). Creating these keys also required a `Gmail `_ account for login access.\n\n::\n \n googleapiclient.build <-- Google API\n | \n cse.list <-- Google CSE\n |\n search_google.api <-- search results\n |\n search_google.cli <-- command line\n\nA rough example is provided below thanks to the `customsearch example `_ from Google:\n\n.. code-block:: python\n \n from apiclient.discovery import build\n \n # Set developer key and CSE ID\n dev_key = 'a_developer_key'\n cse_id = 'a_cse_id'\n \n # Obtain search results from Google CSE\n service = build(\"customsearch\", \"v1\", developerKey=dev_key)\n results = service.cse().list(q='cat', cx=cse_id).execute()\n \n # Manipulate search results after ...",
"description_content_type": null,
"docs_url": null,
"download_url": "https://github.com/rrwen/search_google/archive/master.zip",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/rrwen/search_google",
"keywords": "google,api,custom,web,image,search,engine,cli,cse,command,line,interface,tool,module",
"license": "MIT",
"maintainer": "",
"maintainer_email": "",
"name": "search-google",
"package_url": "https://pypi.org/project/search-google/",
"platform": "",
"project_url": "https://pypi.org/project/search-google/",
"project_urls": {
"Download": "https://github.com/rrwen/search_google/archive/master.zip",
"Homepage": "https://github.com/rrwen/search_google"
},
"release_url": "https://pypi.org/project/search-google/1.2.1/",
"requires_dist": null,
"requires_python": "",
"summary": "A command line tool and module for Google API web and image search.",
"version": "1.2.1"
},
"last_serial": 3314420,
"releases": {
"1.0.2": [
{
"comment_text": "",
"digests": {
"md5": "f4b67a01de4d614825afb4644db60856",
"sha256": "eef8466e63ff18c3521342c44c1519728fd3c8dc796af2a56dc45d27f45ca23d"
},
"downloads": -1,
"filename": "search_google-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "f4b67a01de4d614825afb4644db60856",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6722,
"upload_time": "2017-05-18T03:26:38",
"url": "https://files.pythonhosted.org/packages/cb/11/f9f6868e2b1364a927e81cb9f4bd75c5df4715aa9d28fc5073e6c2e63c13/search_google-1.0.2.tar.gz"
}
],
"1.0.3": [
{
"comment_text": "",
"digests": {
"md5": "8aebb174cb2c2065a523e4fdf00208f9",
"sha256": "49348eb26fa9a77d22966e844bc79a7104cf40ef01f7b7779714754fdbb6ac4e"
},
"downloads": -1,
"filename": "search_google-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "8aebb174cb2c2065a523e4fdf00208f9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8547,
"upload_time": "2017-05-21T06:45:58",
"url": "https://files.pythonhosted.org/packages/6b/df/9054459b94cb552dc9ec0de0c83533a18757be367f9002a1454de6fb6cdc/search_google-1.0.3.tar.gz"
}
],
"1.0.4": [
{
"comment_text": "",
"digests": {
"md5": "4fa59f6c7bd6f2427f20f88344b4fa5c",
"sha256": "aed7cc154307323808133400dfd5b66f7dda5356804ed5e46543a0df187589c2"
},
"downloads": -1,
"filename": "search_google-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "4fa59f6c7bd6f2427f20f88344b4fa5c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8545,
"upload_time": "2017-05-22T05:47:21",
"url": "https://files.pythonhosted.org/packages/a4/7f/691b2c66d12ca52ac41123fd3f82174bddab229e15bb94b913c0ed73af58/search_google-1.0.4.tar.gz"
}
],
"1.0.5": [
{
"comment_text": "",
"digests": {
"md5": "1b2e076cbc539a1d0a5d6fee1f9e2e79",
"sha256": "a29e904b85921aefe766ccea56be0405afcde1174345b26becf0f722aec2c0f4"
},
"downloads": -1,
"filename": "search_google-1.0.5.tar.gz",
"has_sig": false,
"md5_digest": "1b2e076cbc539a1d0a5d6fee1f9e2e79",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7969,
"upload_time": "2017-05-23T05:30:29",
"url": "https://files.pythonhosted.org/packages/50/94/9e572c8ed10d33a031cda1f950e4eccf41f9d4a0daddfb1304a42b4a8752/search_google-1.0.5.tar.gz"
}
],
"1.0.6": [
{
"comment_text": "",
"digests": {
"md5": "2b02eff538105b21cb3f207fefa747c7",
"sha256": "4054b97900a565dfece5ca0cfeb506122042d4ec2505b6bb75aa71fa1546cf7b"
},
"downloads": -1,
"filename": "search_google-1.0.6.tar.gz",
"has_sig": false,
"md5_digest": "2b02eff538105b21cb3f207fefa747c7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7609,
"upload_time": "2017-05-29T08:03:05",
"url": "https://files.pythonhosted.org/packages/89/87/ba0003b4b5a3ba901e75969adf3896cb80e9c8793ccedd4298a900255863/search_google-1.0.6.tar.gz"
}
],
"1.0.7": [
{
"comment_text": "",
"digests": {
"md5": "9b2e8a950de55864c455c328658b496f",
"sha256": "620cfdd2ca3a3dfe256116355235762a7dfde3632532fe7a0b99111809348ae3"
},
"downloads": -1,
"filename": "search_google-1.0.7.tar.gz",
"has_sig": false,
"md5_digest": "9b2e8a950de55864c455c328658b496f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7612,
"upload_time": "2017-06-02T08:46:54",
"url": "https://files.pythonhosted.org/packages/c1/8e/5340b9e69a687152c25f7a59b287c16231b9207c7e6abc9f4a10d07b0364/search_google-1.0.7.tar.gz"
}
],
"1.0.8": [
{
"comment_text": "",
"digests": {
"md5": "c8621ea5d4a94891f002d6eab30ba8e7",
"sha256": "e7340372650fd03fa408565fb8913bdfce839e8f1b445414e8c261dfc35b63cd"
},
"downloads": -1,
"filename": "search_google-1.0.8.tar.gz",
"has_sig": false,
"md5_digest": "c8621ea5d4a94891f002d6eab30ba8e7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7673,
"upload_time": "2017-06-02T09:21:07",
"url": "https://files.pythonhosted.org/packages/52/ad/a427c52c63116fb150dbee7d5c7204c83f905f8486ba7509f6155960a108/search_google-1.0.8.tar.gz"
}
],
"1.0.9": [
{
"comment_text": "",
"digests": {
"md5": "e8ed5a00c3ebfa9aeebd85faae306981",
"sha256": "e4d55abe9ff0c02bebfd2fcd3f8474866070ec844bfb552029c1039bf16fdb6a"
},
"downloads": -1,
"filename": "search_google-1.0.9.tar.gz",
"has_sig": false,
"md5_digest": "e8ed5a00c3ebfa9aeebd85faae306981",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7954,
"upload_time": "2017-06-03T08:08:15",
"url": "https://files.pythonhosted.org/packages/89/29/464859ab2603b5b139a9541292924db102c9ed1bdc39d03298fc5eb249d8/search_google-1.0.9.tar.gz"
}
],
"1.1.0": [
{
"comment_text": "",
"digests": {
"md5": "9504955ddb982b09dd893054dc53dcf0",
"sha256": "824adfea3c58509535f4794df44dfe9ae794d09eb6aae6edd3d9f7841a3c1b13"
},
"downloads": -1,
"filename": "search_google-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "9504955ddb982b09dd893054dc53dcf0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7909,
"upload_time": "2017-06-03T08:16:27",
"url": "https://files.pythonhosted.org/packages/42/b5/5dc1a921dbcb27ceb1cfea0d5cfb3b5a76f373f4c10eda1c8c3be8420a58/search_google-1.1.0.tar.gz"
}
],
"1.1.1": [
{
"comment_text": "",
"digests": {
"md5": "ab9f7411ca2cead0fd146f90352d795d",
"sha256": "ac4944f26018e7c57f5f6cf3df784c3dc3350777afb7b5fc6555f8a85a698236"
},
"downloads": -1,
"filename": "search_google-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "ab9f7411ca2cead0fd146f90352d795d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7895,
"upload_time": "2017-06-05T08:33:18",
"url": "https://files.pythonhosted.org/packages/d0/ce/bf14453ee0a46464508ed627c992c950f4859064836509e7bc4ef551772a/search_google-1.1.1.tar.gz"
}
],
"1.1.2": [
{
"comment_text": "",
"digests": {
"md5": "5278b0f4c290e101711c44e9f1bb6b19",
"sha256": "54f7faa7a5523eb8e545d509337d54de1c388ca6d6e233b281776b2ad8e94d10"
},
"downloads": -1,
"filename": "search_google-1.1.2.tar.gz",
"has_sig": false,
"md5_digest": "5278b0f4c290e101711c44e9f1bb6b19",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7900,
"upload_time": "2017-06-05T21:18:04",
"url": "https://files.pythonhosted.org/packages/0b/df/5df8f693f859eaebf8ee1f05821ce2462d0e633f13d02bc9f93c90ba5a58/search_google-1.1.2.tar.gz"
}
],
"1.1.3": [
{
"comment_text": "",
"digests": {
"md5": "af28cb713e74eea68c3c6c3aa501bac2",
"sha256": "195bb7f0a3a8176325c1a876fbba5c67d4437880812a53c54892cd4be90023f7"
},
"downloads": -1,
"filename": "search_google-1.1.3.tar.gz",
"has_sig": false,
"md5_digest": "af28cb713e74eea68c3c6c3aa501bac2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7934,
"upload_time": "2017-06-06T23:20:31",
"url": "https://files.pythonhosted.org/packages/eb/a5/9b6fe36a6bd067cd4e91a75a37b7d18dccbb7ffabd17fb6371ac4694afa5/search_google-1.1.3.tar.gz"
}
],
"1.1.5": [
{
"comment_text": "",
"digests": {
"md5": "f6e081a98a8c11e45dd88cf284b63342",
"sha256": "f6dccc3a1aeb351ca2224e9617b8530299c0886a8b48eb5ccd7ce345f74f075c"
},
"downloads": -1,
"filename": "search_google-1.1.5.tar.gz",
"has_sig": false,
"md5_digest": "f6e081a98a8c11e45dd88cf284b63342",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7953,
"upload_time": "2017-06-07T00:02:02",
"url": "https://files.pythonhosted.org/packages/17/b4/6b43d1c804ccecb348f52518219288890e7338caa45b77ceba08f3091a60/search_google-1.1.5.tar.gz"
}
],
"1.1.6": [
{
"comment_text": "",
"digests": {
"md5": "2cdb55e536483732ed61cec3df57e556",
"sha256": "3234d4d34e0aacbb0bb857437ef7e7b8cfc200972a44851d7fa1e43aa6c08a2e"
},
"downloads": -1,
"filename": "search_google-1.1.6.tar.gz",
"has_sig": false,
"md5_digest": "2cdb55e536483732ed61cec3df57e556",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7972,
"upload_time": "2017-06-08T02:46:25",
"url": "https://files.pythonhosted.org/packages/1b/c5/0ccf75b3adfb87a279928e763118baaba693ef968a8bd4529e1321f0afbf/search_google-1.1.6.tar.gz"
}
],
"1.1.7": [
{
"comment_text": "",
"digests": {
"md5": "b7fe035153fad84ccabe45a67716a915",
"sha256": "62c64ef3d6decba376b15cb051907539323f8719afdf204adaadcc9e5e3f1d1e"
},
"downloads": -1,
"filename": "search_google-1.1.7.tar.gz",
"has_sig": false,
"md5_digest": "b7fe035153fad84ccabe45a67716a915",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 7985,
"upload_time": "2017-06-26T05:45:30",
"url": "https://files.pythonhosted.org/packages/44/83/010935433d363f46e2ed8ed1ccb150627afde047c206b3dd3e9e0214ceb8/search_google-1.1.7.tar.gz"
}
],
"1.1.8": [
{
"comment_text": "",
"digests": {
"md5": "3a34d8b109ac35985e82780d5697a20d",
"sha256": "2871593a765026103c53a80af6cb9169f63d315178e19516e47852fda6343843"
},
"downloads": -1,
"filename": "search_google-1.1.8.tar.gz",
"has_sig": false,
"md5_digest": "3a34d8b109ac35985e82780d5697a20d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8003,
"upload_time": "2017-06-26T06:41:55",
"url": "https://files.pythonhosted.org/packages/89/e6/26fd3fef05e428024fbb4427ef8c39510552bb22bfc0b7cdc08c302faaa9/search_google-1.1.8.tar.gz"
}
],
"1.1.9": [
{
"comment_text": "",
"digests": {
"md5": "44129d088b737274f9f418d39cf4fdf9",
"sha256": "9dd4987779ae5fb61fe49e772f286b2155ed25b3356eccdffdccdaba6ea0cb85"
},
"downloads": -1,
"filename": "search_google-1.1.9.tar.gz",
"has_sig": false,
"md5_digest": "44129d088b737274f9f418d39cf4fdf9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8341,
"upload_time": "2017-08-16T05:43:15",
"url": "https://files.pythonhosted.org/packages/02/79/e249061b76ea6705f0165cee5863369ea5ef9094bc398941801c51c4d519/search_google-1.1.9.tar.gz"
}
],
"1.2.0": [
{
"comment_text": "",
"digests": {
"md5": "21d646252b7cfab5042ce2a1843559c7",
"sha256": "bd5150fc1f8679f49a6211c60f7434768f2b408dcc8ff4c023f2b51595325312"
},
"downloads": -1,
"filename": "search_google-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "21d646252b7cfab5042ce2a1843559c7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8381,
"upload_time": "2017-08-16T17:40:44",
"url": "https://files.pythonhosted.org/packages/c8/88/ea952d91a3d23394d9af6aab24238348b5a1ca26af4079c739431e911b35/search_google-1.2.0.tar.gz"
}
],
"1.2.1": [
{
"comment_text": "",
"digests": {
"md5": "c7b9f2156f637516318bfdb708a341a2",
"sha256": "fad8d2a199714def437cb7d1a2562c96294ad42db469b29bfce390ffd1f5ed26"
},
"downloads": -1,
"filename": "search_google-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "c7b9f2156f637516318bfdb708a341a2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9647,
"upload_time": "2017-11-08T00:14:06",
"url": "https://files.pythonhosted.org/packages/78/2d/479a767d29e1007b81c8007c2effc92f08548971797ffaf944a72e78f32b/search_google-1.2.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "c7b9f2156f637516318bfdb708a341a2",
"sha256": "fad8d2a199714def437cb7d1a2562c96294ad42db469b29bfce390ffd1f5ed26"
},
"downloads": -1,
"filename": "search_google-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "c7b9f2156f637516318bfdb708a341a2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9647,
"upload_time": "2017-11-08T00:14:06",
"url": "https://files.pythonhosted.org/packages/78/2d/479a767d29e1007b81c8007c2effc92f08548971797ffaf944a72e78f32b/search_google-1.2.1.tar.gz"
}
]
}