You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.8 KiB
Python
57 lines
1.8 KiB
Python
from __future__ import print_function
|
|
from __future__ import unicode_literals
|
|
|
|
from builtins import str, bytes, dict, int
|
|
|
|
import os
|
|
import sys
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", ".."))
|
|
|
|
from pattern.web import Bing, asynchronous, plaintext
|
|
from pattern.web import SEARCH, IMAGE, NEWS
|
|
|
|
import time
|
|
|
|
# This example retrieves results from Bing based on a given query.
|
|
# The Bing search engine can retrieve up to a 1000 results (10x100) for a query.
|
|
|
|
# Bing's "Custom Search API" is a paid service.
|
|
# The pattern.web module uses a test account by default,
|
|
# with 5000 free queries per month shared by all Pattern users.
|
|
# If this limit is exceeded, SearchEngineLimitError is raised.
|
|
# You should obtain your own license key at:
|
|
# https://datamarket.azure.com/account/
|
|
engine = Bing(license=None, language="en")
|
|
|
|
# Quote a query to match it exactly:
|
|
q = "\"is more important than\""
|
|
|
|
# When you execute a query,
|
|
# the script will halt until all results are downloaded.
|
|
# In apps with an infinite main loop (e.g., GUI, game),
|
|
# it is often more useful if the app keeps on running
|
|
# while the search is executed in the background.
|
|
# This can be achieved with the asynchronous() function.
|
|
# It takes any function and that function's arguments and keyword arguments:
|
|
request = asynchronous(engine.search, q, start=1, count=100, type=SEARCH, timeout=10)
|
|
|
|
# This while-loop simulates an infinite application loop.
|
|
# In real-life you would have an app.update() or similar
|
|
# in which you can check request.done every now and then.
|
|
while not request.done:
|
|
time.sleep(0.1)
|
|
print(".")
|
|
|
|
print("")
|
|
print("")
|
|
|
|
# An error occured in engine.search(), raise it.
|
|
if request.error:
|
|
raise request.error
|
|
|
|
# Retrieve the list of search results.
|
|
for result in request.value:
|
|
print(result.text)
|
|
print(result.url)
|
|
print("")
|