satoryu / google_suggest Goto Github PK
View Code? Open in Web Editor NEWA gem which allows us to retrieve suggest words from Google in your Ruby Code.
License: MIT License
A gem which allows us to retrieve suggest words from Google in your Ruby Code.
License: MIT License
The scripts to reproduce is here:
irb(main):003:0> GoogleSuggest.configure { |c| c.home_language = 'ja'; c.region = :com }
=> #<GoogleSuggest::Configuration:0x00007f83af891090 @home_language="ja", @region=:com>
irb(main):004:0> GoogleSuggest.suggest_for('rakuten')
Traceback (most recent call last):
16: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
15: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
14: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
13: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/cli.rb:494:in `console'
12: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/cli/console.rb:19:in `run'
11: from (irb):4
10: from /Users/tatsuya.b.sato/Projects/private/google_suggest/lib/google_suggest.rb:23:in `suggest_for'
9: from /Users/tatsuya.b.sato/Projects/private/google_suggest/lib/google_suggest.rb:41:in `suggest_for'
8: from /Users/tatsuya.b.sato/Projects/private/google_suggest/lib/google_suggest.rb:67:in `parse'
7: from /Users/tatsuya.b.sato/Projects/private/google_suggest/lib/google_suggest.rb:67:in `new'
6: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/document.rb:45:in `initialize'
5: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/document.rb:288:in `build'
4: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/parsers/treeparser.rb:23:in `parse'
3: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/parsers/baseparser.rb:183:in `pull'
2: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/parsers/baseparser.rb:332:in `pull_event'
1: from /Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/parsers/baseparser.rb:406:in `rescue in pull_event'
REXML::ParseException (#<ArgumentError: invalid byte sequence in UTF-8>)
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/source.rb:220:in `match'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/source.rb:220:in `match'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/parsers/baseparser.rb:367:in `pull_event'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/parsers/baseparser.rb:183:in `pull'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/parsers/treeparser.rb:23:in `parse'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/document.rb:288:in `build'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/rexml/document.rb:45:in `initialize'
/Users/tatsuya.b.sato/Projects/private/google_suggest/lib/google_suggest.rb:67:in `new'
/Users/tatsuya.b.sato/Projects/private/google_suggest/lib/google_suggest.rb:67:in `parse'
/Users/tatsuya.b.sato/Projects/private/google_suggest/lib/google_suggest.rb:41:in `suggest_for'
/Users/tatsuya.b.sato/Projects/private/google_suggest/lib/google_suggest.rb:23:in `suggest_for'
(irb):4:in `irb_binding'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb/workspace.rb:85:in `eval'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb/workspace.rb:85:in `evaluate'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb/context.rb:385:in `evaluate'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb.rb:493:in `block (2 levels) in eval_input'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb.rb:647:in `signal_status'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb.rb:490:in `block in eval_input'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb/ruby-lex.rb:246:in `block (2 levels) in each_top_level_statement'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb/ruby-lex.rb:232:in `loop'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb/ruby-lex.rb:232:in `block in each_top_level_statement'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb/ruby-lex.rb:231:in `catch'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb/ruby-lex.rb:231:in `each_top_level_statement'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb.rb:489:in `eval_input'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb.rb:428:in `block in run'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb.rb:427:in `catch'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb.rb:427:in `run'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/irb.rb:383:in `start'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/cli/console.rb:19:in `run'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/cli.rb:494:in `console'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/cli.rb:27:in `dispatch'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/cli.rb:18:in `start'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:30:in `block in <top (required)>'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/2.6.0/bundler/friendly_errors.rb:124:in `with_friendly_errors'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/bundler-1.17.2/exe/bundle:22:in `<top (required)>'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/bin/bundle:23:in `load'
/Users/tatsuya.b.sato/.rbenv/versions/2.6.0/bin/bundle:23:in `<main>'
...
Exception parsing
Line: 1
Position: 76
Last 80 unconsumed characters:
<suggestion data="yV"/>
This is because all the body is Shift-JIS. It is explained in Content-Type
header as follows:
HTTP/2 200
date: Wed, 10 Apr 2019 07:47:44 GMT
expires: Wed, 10 Apr 2019 07:47:44 GMT
cache-control: private, max-age=3600
content-type: text/xml; charset=Shift_JIS
p3p: CP="This is not a P3P policy! See g.co/p3phelp for more info."
server: gws
x-xss-protection: 0
x-frame-options: SAMEORIGIN
set-cookie: 1P_JAR=2019-04-10-07; expires=Fri, 10-May-2019 07:47:44 GMT; path=/; domain=.google.com
set-cookie: NID=181=XEKXlWH9BQIjiAoVyhoM_kEEMcxxt7BTUQP1HYRMsGA5xWAJsPWDx1RduErrsVdHB8KcJzk7ODwHU9o6C6z899YF4JuyFXNFz12NDd24e6aXG03mPw6XyDKPxQZIqmvpJD2CgFrS3REf1vHOkYwOkrfyunbBf9sgAgtsxC8qCIM; expires=Thu, 10-Oct-2019 07:47:44 GMT; path=/; domain=.google.com; HttpOnly
alt-svc: quic=":443"; ma=2592000; v="46,44,43,39"
accept-ranges: none
vary: Accept-Encoding
Hi,
it would be nice if it would be possible to configure which google domain to use (change the 'com' part to something else). I have noticed the suggestion results are different depending on which google domain you use.
Thanks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.