Git Product home page Git Product logo

Comments (7)

fhamborg avatar fhamborg commented on July 16, 2024

Did you try running news-please with the version of beautifulsoup4that is required by newspaper? You can simply remove the line from the requirements.txt in news-please to test this.

from news-please.

briankimlim avatar briankimlim commented on July 16, 2024

After removing beautifulsoup4 from news-please's requirements.txt, it seems to install news-please (had to individually install dependencies like twisted which were not handled by pip). This was accompanied by new problems.

I'm not sure if this warrants a new issue, since I'm not so sure this is due to beautifulsoup4 anymore, but here is my process (with the latest problem at the bottom).

Running news-please gave:

c:\Python27\Scripts>news-please
Traceback (most recent call last):
  File "c:\Python27\Scripts\news-please-script.py", line 11, in <module>
    load_entry_point('news-please==1.1.30', 'console_scripts', 'news-please')()
  File "c:\python27\lib\site-packages\pkg_resources\__init__.py", line 561, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "c:\python27\lib\site-packages\pkg_resources\__init__.py", line 2649, in load_entry_point
    return ep.load()
  File "c:\python27\lib\site-packages\pkg_resources\__init__.py", line 2303, in load
    return self.resolve()
  File "c:\python27\lib\site-packages\pkg_resources\__init__.py", line 2309, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
ImportError: No module named newsplease.__main__

After trying several things like updating libraries (setuptools, etc.), I uninstalled news-please and re-installed it, including downgrading beautifulsoup4 to version 4.3.2 for newspaper's dependency. I also had to individually download libraries like warc.

Next problem was:

c:\Python27\Scripts>news-please
Traceback (most recent call last):
  File "c:\Python27\Scripts\news-please-script.py", line 11, in <module>
    load_entry_point('news-please==1.1.30', 'console_scripts', 'news-please')()
  File "c:\python27\lib\site-packages\pkg_resources\__init__.py", line 561, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "c:\python27\lib\site-packages\pkg_resources\__init__.py", line 2649, in load_entry_point
    return ep.load()
  File "c:\python27\lib\site-packages\pkg_resources\__init__.py", line 2303, in load
    return self.resolve()
  File "c:\python27\lib\site-packages\pkg_resources\__init__.py", line 2309, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "c:\python27\lib\site-packages\newsplease\__init__.py", line 15, in <module>
    from urllib.parse import urlparse
ImportError: No module named parse

Presumably this is because of Python2.7 vs Python3.x. I modified C:\Python27\lib\site-packages\newsplease\__init__.py with:

try:
    from urllib.parse import urlparse
except ImportError:
    from urlparse import urlparse

Here is where I am stuck:

c:\Python27\Scripts>news-please
[newsplease.config:165|INFO] Loading config-file (C:\Users\b0588429/news-please-
repo/config/config.cfg)
[newsplease.config:165|INFO] Loading config-file (C:\Users\b0588429/news-please-
repo/config/config.cfg)
[newsplease.config:165|INFO] Loading config-file (C:\Users\b0588429/news-please-
repo/config/config.cfg)
[__main__:253|INFO] Removed C:\Users\b0588429/news-please-repo/.resume_jobdir/f0
3a98d15778ac99eeb8c578aa8c224b since '--resume' was not passed to initial.py or
this crawler was daemonized.
Unhandled error in Deferred:

[newsplease.config:165|INFO] Loading config-file (C:\Users\b0588429/news-please-
repo/config/config.cfg)
[__main__:253|INFO] Removed C:\Users\b0588429/news-please-repo/.resume_jobdir/86
1e0b7ca3034017282d27dce656d520 since '--resume' was not passed to initial.py or
this crawler was daemonized.
Unhandled error in Deferred:

[__main__:253|INFO] Removed C:\Users\b0588429/news-please-repo/.resume_jobdir/50
11d55eaa1b745eefb709134271e173 since '--resume' was not passed to initial.py or
this crawler was daemonized.
Unhandled error in Deferred:

[newsplease.__main__:270|INFO] Graceful stop called manually. Shutting down.

Sorry if this is an easy issue, I'm a newbie and may have missed something.

from news-please.

fhamborg avatar fhamborg commented on July 16, 2024

I cannot reproduce this here, since I'm not in Windows, but can you set the log level in the C:\Users\b0588429/news-please- repo/config/config.cfg(line 270) to DEBUGand rerun news-please and send me the full output?

from news-please.

briankimlim avatar briankimlim commented on July 16, 2024

I have not modified config.cfg beyond setting the log level to DEBUG. Output:

c:\Python27\Scripts>news-please
[newsplease.config:165|INFO] Loading config-file (C:\Users\b0588429/news-please-
repo/config/config.cfg)
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Crawler] default
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Crawler] ignore_regex
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] url_input_file_name
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] working_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] local_data_directory
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
MySQL] host
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] host
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] ca_cert_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] client_cert_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] client_key_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_level
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_format
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_dateformat
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_encoding
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] jobdirname
[newsplease.config:267|DEBUG] Loading JSON-file (C:\Users\b0588429/news-please-r
epo/config/sitelist.hjson)
[newsplease.__main__:255|DEBUG] Calling Process: ['c:\\python27\\python.exe', 'c
:\\python27\\lib\\site-packages\\newsplease\\single_crawler.py', 'C:\\Users\\b05
88429/news-please-repo/config/config.cfg', 'C:\\Users\\b0588429/news-please-repo
/config/sitelist.hjson', '0', 'False', 'False']
[newsplease.__main__:255|DEBUG] Calling Process: ['c:\\python27\\python.exe', 'c
:\\python27\\lib\\site-packages\\newsplease\\single_crawler.py', 'C:\\Users\\b05
88429/news-please-repo/config/config.cfg', 'C:\\Users\\b0588429/news-please-repo
/config/sitelist.hjson', '1', 'False', 'False']
[newsplease.__main__:255|DEBUG] Calling Process: ['c:\\python27\\python.exe', 'c
:\\python27\\lib\\site-packages\\newsplease\\single_crawler.py', 'C:\\Users\\b05
88429/news-please-repo/config/config.cfg', 'C:\\Users\\b0588429/news-please-repo
/config/sitelist.hjson', '2', 'False', 'False']
[newsplease.config:165|INFO] Loading config-file (C:\Users\b0588429/news-please-
repo/config/config.cfg)
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Crawler] default
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Crawler] ignore_regex
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] url_input_file_name
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] working_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] local_data_directory
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
MySQL] host
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] host
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] ca_cert_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] client_cert_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] client_key_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_level
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_format
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_dateformat
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_encoding
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] jobdirname
[__main__:88|DEBUG] Config initialized - Further initialisation.
[newsplease.config:267|DEBUG] Loading JSON-file (C:\Users\b0588429/news-please-r
epo/config/sitelist.hjson)
[newsplease.config:165|INFO] Loading config-file (C:\Users\b0588429/news-please-
repo/config/config.cfg)
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Crawler] default
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Crawler] ignore_regex
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] url_input_file_name
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] working_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] local_data_directory
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
MySQL] host
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] host
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] ca_cert_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] client_cert_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] client_key_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_level
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_format
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_dateformat
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_encoding
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] jobdirname
[__main__:88|DEBUG] Config initialized - Further initialisation.
[newsplease.config:267|DEBUG] Loading JSON-file (C:\Users\b0588429/news-please-r
epo/config/sitelist.hjson)
[newsplease.config:165|INFO] Loading config-file (C:\Users\b0588429/news-please-
repo/config/config.cfg)
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Crawler] default
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Crawler] ignore_regex
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] url_input_file_name
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] working_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Files] local_data_directory
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
MySQL] host
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] host
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] ca_cert_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] client_cert_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Elasticsearch] client_key_path
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_level
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_format
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_dateformat
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] log_encoding
[newsplease.config:167|DEBUG] Option not literal_eval-parsable (maybe string): [
Scrapy] jobdirname
[__main__:88|DEBUG] Config initialized - Further initialisation.
[newsplease.config:267|DEBUG] Loading JSON-file (C:\Users\b0588429/news-please-r
epo/config/sitelist.hjson)
[__main__:192|DEBUG] Using crawler RecursiveCrawler for http://www.faz.net/.
[__main__:253|INFO] Removed C:\Users\b0588429/news-please-repo/.resume_jobdir/f0
3a98d15778ac99eeb8c578aa8c224b since '--resume' was not passed to initial.py or
this crawler was daemonized.
Unhandled error in Deferred:

[__main__:192|DEBUG] Using crawler SitemapCrawler for http://www.zeit.de.
[__main__:253|INFO] Removed C:\Users\b0588429/news-please-repo/.resume_jobdir/86
1e0b7ca3034017282d27dce656d520 since '--resume' was not passed to initial.py or
this crawler was daemonized.
[__main__:192|DEBUG] Using crawler SitemapCrawler for http://www.nytimes.com/.
[__main__:253|INFO] Removed C:\Users\b0588429/news-please-repo/.resume_jobdir/50
11d55eaa1b745eefb709134271e173 since '--resume' was not passed to initial.py or
this crawler was daemonized.
Unhandled error in Deferred:

Unhandled error in Deferred:

[newsplease.__main__:270|INFO] Graceful stop called manually. Shutting down.

from news-please.

fhamborg avatar fhamborg commented on July 16, 2024

Did you install pywin32? According to what I found on the Internet, this seems to be the problem most likely. See e.g. https://stackoverflow.com/questions/31439540/twisted-critical-unhandled-error-on-scrapy-tutorial

from news-please.

fhamborg avatar fhamborg commented on July 16, 2024

Lowered the requirements for the version of beautifulsoup and fixed the library import. Please open a new issue, if the other problem still persists (which I think is likely due to missing pywin32)

from news-please.

iamhosseinbiniazian avatar iamhosseinbiniazian commented on July 16, 2024

Lowered the requirements for the version of beautifulsoup and fixed the library import. Please open a new issue, if the other problem still persists (which I think is likely due to missing pywin32)

Hi,
I use news-please in ubuntu 18.04 LTS and when I want run it for crawl some website, I get the error like below.
[newsplease.config:164|INFO] Loading config-file (/home/u1/news-please-repo/config/config.cfg)
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Crawler] default
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] url_input_file_name
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] working_path
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] local_data_directory
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [MySQL] host
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Elasticsearch] host
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_level
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_format
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_dateformat
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_encoding
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] jobdirname
[newsplease.config:266|DEBUG] Loading JSON-file (/home/u1/news-please-repo/config/sitelist.hjson)
[newsplease.main:255|DEBUG] Calling Process: ['/home/u1/VirtualEnv/genralcrawler/bin/python3.6', '/home/u1/PycharmProjects/GenericCrawler/newsplease/single_crawler.py', '/home/u1/news-please-repo/config/config.cfg', '/home/u1/news-please-repo/config/sitelist.hjson', '0', 'False', 'False']
[newsplease.main:255|DEBUG] Calling Process: ['/home/u1/VirtualEnv/genralcrawler/bin/python3.6', '/home/u1/PycharmProjects/GenericCrawler/newsplease/single_crawler.py', '/home/u1/news-please-repo/config/config.cfg', '/home/u1/news-please-repo/config/sitelist.hjson', '1', 'False', 'False']
[newsplease.main:255|DEBUG] Calling Process: ['/home/u1/VirtualEnv/genralcrawler/bin/python3.6', '/home/u1/PycharmProjects/GenericCrawler/newsplease/single_crawler.py', '/home/u1/news-please-repo/config/config.cfg', '/home/u1/news-please-repo/config/sitelist.hjson', '2', 'False', 'False']
[newsplease.config:164|INFO] Loading config-file (/home/u1/news-please-repo/config/config.cfg)
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Crawler] default
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] url_input_file_name
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] working_path
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] local_data_directory
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [MySQL] host
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Elasticsearch] host
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_level
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_format
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_dateformat
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_encoding
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] jobdirname
[main:89|DEBUG] Config initialized - Further initialisation.
[newsplease.config:266|DEBUG] Loading JSON-file (/home/u1/news-please-repo/config/sitelist.hjson)
[newsplease.config:164|INFO] Loading config-file (/home/u1/news-please-repo/config/config.cfg)
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Crawler] default
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] url_input_file_name
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] working_path
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] local_data_directory
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [MySQL] host
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Elasticsearch] host
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_level
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_format
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_dateformat
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_encoding
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] jobdirname
[main:89|DEBUG] Config initialized - Further initialisation.
[newsplease.config:266|DEBUG] Loading JSON-file (/home/u1/news-please-repo/config/sitelist.hjson)
[main:193|DEBUG] Using crawler RecursiveCrawler for http://www.faz.net/.
[main:254|INFO] Removed /home/u1/news-please-repo/.resume_jobdir/f03a98d15778ac99eeb8c578aa8c224b since '--resume' was not passed to initial.py or this crawler was daemonized.
[newsplease.config:164|INFO] Loading config-file (/home/u1/news-please-repo/config/config.cfg)
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Crawler] default
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] url_input_file_name
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] working_path
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Files] local_data_directory
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [MySQL] host
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Elasticsearch] host
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_level
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_format
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_dateformat
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] log_encoding
[newsplease.config:166|DEBUG] Option not literal_eval-parsable (maybe string): [Scrapy] jobdirname
[main:89|DEBUG] Config initialized - Further initialisation.
[newsplease.config:266|DEBUG] Loading JSON-file (/home/u1/news-please-repo/config/sitelist.hjson)
Unhandled error in Deferred:

[main:193|DEBUG] Using crawler SitemapCrawler for http://www.nytimes.com/.
[main:254|INFO] Removed /home/u1/news-please-repo/.resume_jobdir/5011d55eaa1b745eefb709134271e173 since '--resume' was not passed to initial.py or this crawler was daemonized.
[main:193|DEBUG] Using crawler SitemapCrawler for http://www.zeit.de.
[main:254|INFO] Removed /home/u1/news-please-repo/.resume_jobdir/861e0b7ca3034017282d27dce656d520 since '--resume' was not passed to initial.py or this crawler was daemonized.
Unhandled error in Deferred:

Unhandled error in Deferred:

[newsplease.main:270|INFO] Graceful stop called manually. Shutting down.
help me please.
thanks.

from news-please.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.