DuckDuckGo-getImageのソースを表示
←
DuckDuckGo-getImage
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、以下のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
== 概要 == ※モジュールではありません。<br> 大量アクセス対策としてUserAgentをそのまま送るか偽装して送信します。BAN対策 == コード == <syntaxhighlight lang="python3"> class ddg: @classmethod def image(cls,query): try: headers=autoUserAgent() token = cls._fetch_token(query,headers=headers) time.sleep((random.randint(0,3))+(0.1*random.randint(0,10))) return {"word":query, "Developer":"https://www.DuckDuckGo.com/", "Response":cls._fetch_search_urls(query, token,headers=headers)} except: return {"word":query, "Developer":"https://www.DuckDuckGo.com/", "Response":None} @classmethod def image_all(cls,query): try: headers=autoUserAgent() token = cls._fetch_token(query,headers=headers) time.sleep((random.randint(0,3))+(0.1*random.randint(0,10))) return {"word":query, "Developer":"https://www.startpage.com/", "Response":cls._fetch_search_urls(query, token, what=False,headers=headers)} except: return {"word":query, "Developer":"https://www.startpage.com/", "Response":None} @classmethod def _fetch_token(cls,query, URL="https://duckduckgo.com/",headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"}): res = requests.post(URL, data={'q': query}) if res.status_code != 200: return "" match = re.search(r"vqd='([\d-]+)'", res.text, re.M|re.I) if match is None: return "" return match.group(1) @classmethod def _fetch_search_urls(cls,query, token, URL="https://duckduckgo.com/", what=True,headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"}): query = { "vqd": token, "q": query, "l": "wt-wt", "o": "json", "f": ",,,", "p": "2" } urls = [] res = requests.get(URL+"i.js", params=query,headers=headers) if res.status_code != 200: return urls data = json.loads(res.text) for result in data["results"]: image = result["image"] if "http://" in image: image = result["thumbnail"] urls.append({ "url":result["url"], "title":result["title"], "description":result["title"], 'user_name':result["source"], "image":[image] }) if what: return urls while "next" in data: res = requests.get(URL+data["next"], params=query,headers=headers) if res.status_code != 200: return urls data = json.loads(res.text) for result in data["results"]: image = result["image"] if "http://" in image: image = result["thumbnail"] urls.append({ "url":result["url"], "title":result["title"], "description":result["title"], 'user_name':result["source"], "image":[image] }) return urls </syntaxhighlight>
DuckDuckGo-getImage
に戻る。
案内メニュー
個人用ツール
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWikiについてのヘルプ
コード系
Program
PHP
Java
Python
Swift
JavaScript
HTML
CSS
C言語
MySQL
サーバー系
Apache2
OS系
Debian
kail
アプリケーション系
Xcode
Android Studio
計算系
ファイル系
速度系
メモ・業務
My命名規則
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
編集
左メニュー
動画挿入について
動画・音声を追加する
JavaScriptを埋め込む
ページにリダイレクトを指定する