リトルビッグプラネット™2でアップロードduckduckgo inline image
9793 ワード
内容:イントロ、インポート、何がスクラップ、プロセス、コード、リンク、outro.
このブログ記事はDuckDuckgoウェブスクレーピングシリーズの続きです.ここでは、
前提条件:
プロセスは非常に他のDuckduckgoブログ投稿シリーズからのようです.
コンテナ、タイトル、リンク、サムネイル、
SelectorGadgetクロム拡大は、
SerPapiは無料のプランで有料APIです.
あなたがすぐに表示されます違いは、APIは、- 8 - 10結果よりも30の結果を提供することです.
あるいは、あなたがしなければならないすべては構造化された
GithHub Gist . DuckDuckGo Inline Images API
何か質問や何かが正しく動作していない場合や他の何かを書くには、コメントのセクションやTwitter経由でコメントをドロップすること自由に感じなさい.
あなた
Dimitryと残りのserpapiチーム.
イントロ
このブログ記事はDuckDuckgoウェブスクレーピングシリーズの続きです.ここでは、
selenium
ライブラリとPythonを使用してインラインイメージの結果をscrapeする方法を参照してください.別のAPIソリューションを示します.前提条件:
selenium
ライブラリと正規表現との親しみ.輸入
from selenium import webdriver
import re, urllib.parse
スクラップ
プロセス
プロセスは非常に他のDuckduckgoブログ投稿シリーズからのようです.
コンテナ、タイトル、リンク、サムネイル、
.get_attribute()
メソッドがdata-id
、src
、およびhref
属性を取得するために使用されるイメージURL CSSセレクタを選択します.SelectorGadgetクロム拡大は、
CSS
セレクタを選ぶために上記のGIFで使われました.コード
from selenium import webdriver
import re, urllib.parse
driver = webdriver.Chrome(executable_path='path/to/chromedriver.exe')
driver.get('https://duckduckgo.com/?q=elon musk dogecoin&kl=us-en&ia=web')
for result in driver.find_elements_by_css_selector('.js-images-link'):
title = result.find_element_by_css_selector('.js-images-link a img').get_attribute('alt')
link = result.find_element_by_css_selector('.js-images-link a').get_attribute('href')
thumbnail_encoded = result.find_element_by_css_selector('.js-images-link a img').get_attribute('src')
# https://regex101.com/r/4pgG5m/1
match_thumbnail_urls = ''.join(re.findall(r'https\:\/\/external\-content\.duckduckgo\.com\/iu\/\?u\=(.*)&f=1', thumbnail_encoded))
# https://www.kite.com/python/answers/how-to-decode-a-utf-8-url-in-python
thumbnail = urllib.parse.unquote(match_thumbnail_urls).replace('&h=160', '')
image = result.get_attribute('data-id')
print(f'{title}\n{link}\n{thumbnail}\n{image}\n')
driver.quit()
--------------------------
'''
Dogecoin (DOGE) Price Crash Below Key Support and Even ...
https://duckduckgo.com/?q=elon%20musk%20dogecoin&iax=images&ia=images&iai=https://cdn.coingape.com/wp-content/uploads/2021/07/02195033/dogecoin-elon-musk-snl-memes.jpg&kl=us-en
https://tse1.mm.bing.net/th?id=OIF.UGa1KGFCz%2f5axclMfq0k4w&pid=Api
https://cdn.coingape.com/wp-content/uploads/2021/07/02195033/dogecoin-elon-musk-snl-memes.jpg
...
'''
DigkDuckgoインラインイメージAPIを使用すること
SerPapiは無料のプランで有料APIです.
あなたがすぐに表示されます違いは、APIは、- 8 - 10結果よりも30の結果を提供することです.
あるいは、あなたがしなければならないすべては構造化された
JSON
ストリングの上で反復することです.import json
from serpapi import GoogleSearch
params = {
"api_key": "YOUR_API_KEY",
"engine": "duckduckgo",
"q": "elon musk dogecoin",
"kl": "us-en"
}
search = GoogleSearch(params)
results = search.get_dict()
print(json.dumps(results['inline_images'], indent=2, ensure_ascii=False))
----------------------
'''
[
{
"position": 1,
"title": "'Dogefather' Elon Musk Tweets in Support of the ...",
"link": "https://gadgets.ndtv.com/cryptocurrency/news/elon-musk-dogecoin-price-cryptocurrency-bitcoin-ethereum-ether-twitter-tweet-support-market-gain-2483505",
"thumbnail": "https://tse1.mm.bing.net/th?id=OIF.ryyLYCT1jVMZDADJDf1LVA&pid=Api",
"image": "https://i.gadgets360cdn.com/large/elon_musk_reuters_1610084738222.jpg"
}
...
{
"position": 20,
"title": "Beware! Your love for Elon Musk and Dogecoin may land you ...",
"link": "http://www.businesstelegraph.co.uk/beware-your-love-for-elon-musk-and-dogecoin-may-land-you-in-a-scam-economic-times/",
"thumbnail": "https://tse1.mm.bing.net/th?id=OIF.Y4geZY10AJX80AvM8EPCjQ&pid=Api",
"image": "http://www.businesstelegraph.co.uk/wp-content/uploads/2021/07/Beware-Your-love-for-Elon-Musk-and-Dogecoin-may-land.jpg"
}
]
'''
リンク
GithHub Gist . DuckDuckGo Inline Images API
アウトロ
何か質問や何かが正しく動作していない場合や他の何かを書くには、コメントのセクションやTwitter経由でコメントをドロップすること自由に感じなさい.
あなた
Dimitryと残りのserpapiチーム.
Reference
この問題について(リトルビッグプラネット™2でアップロードduckduckgo inline image), 我々は、より多くの情報をここで見つけました https://dev.to/dmitryzub/scrape-duckduckgo-inline-images-with-python-576jテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol