Repository navigation
Expand file tree
/
Copy pathgoogle.py
More file actions
66 lines (54 loc) · 2.29 KB
/
Copy pathgoogle.py
File metadata and controls
66 lines (54 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"""
Warning: The Google engine is deprecated as the legacy image search API is no longer available,
which prevents this client from working properly.
"""
import asyncio
from demo.code.config import GOOGLE_COOKIES, IMAGE_BASE_URL, PROXIES, get_image_path, logger
from PicImageSearch import Google, Network
from PicImageSearch.model import GoogleResponse
from PicImageSearch.sync import Google as GoogleSync
url = f"{IMAGE_BASE_URL}/test03.jpg"
file = get_image_path("test03.jpg")
base_url = "https://www.google.co.jp"
@logger.catch()
async def demo_async() -> None:
async with Network(proxies=PROXIES, cookies=GOOGLE_COOKIES) as client:
google = Google(base_url=base_url, client=client)
# resp = await google.search(url=url)
resp = await google.search(file=file)
show_result(resp)
next_resp = await google.next_page(resp)
show_result(next_resp)
if next_resp:
previous_resp = await google.pre_page(next_resp)
show_result(previous_resp)
@logger.catch()
def demo_sync() -> None:
google = GoogleSync(base_url=base_url, proxies=PROXIES, cookies=GOOGLE_COOKIES)
resp = google.search(url=url)
# resp = google.search(file=file)
show_result(resp) # pyright: ignore[reportArgumentType]
next_resp = google.next_page(resp) # pyright: ignore[reportArgumentType]
show_result(next_resp) # pyright: ignore[reportArgumentType]
if next_resp: # pyright: ignore[reportUnnecessaryComparison]
previous_resp = google.pre_page(next_resp) # pyright: ignore[reportArgumentType]
show_result(previous_resp) # pyright: ignore[reportArgumentType]
def show_result(resp: GoogleResponse | None) -> None:
if not resp or not resp.raw:
return
# logger.info(resp.origin) # Original Data
logger.info(resp.pages)
logger.info(len(resp.pages))
logger.info(resp.url) # Link to search results
logger.info(resp.page_number)
# try to get first result with thumbnail
selected = next((item for item in resp.raw if item.thumbnail), resp.raw[0])
logger.info(selected.origin)
logger.info(selected.thumbnail)
logger.info(selected.title)
logger.info(selected.content)
logger.info(selected.url)
logger.info("-" * 50)
if __name__ == "__main__":
asyncio.run(demo_async())
# demo_sync()