有機的なニュースから勇敢な検索
11371 ワード
このブログの記事はどのようにタイトル、リンク、表示されたリンク、ソースのウェブサイト、サムネイル、ニュースは、勇気の検索からオーガニックニュースの結果から投稿されたscrapeする方法を示します. What is Brave Search
Intro Prerequisites Imports
What will be scraped Process Code Links Outro 何が勇敢な検索
非複製の内容のために、私はすでに書きましたwhat is Brave search 前の勇敢なブログ柱で.
イントロ
このブログのポストは、勇敢な検索ウェブの連続シリーズの続きです.ここでは、どのように検索して有機的なニュース結果を勇敢な検索からPythonを使用して参照してくださいよ
必要条件
また、あなたの基本的な理解を持っていることを確認してください
輸入
プロセス
継続的な砂丘冒険は、勇敢な検索から砂丘映画についてニュースを奪いましょう.
通常、必要なデータを格納したコンテナを見つける必要があります.
スクリーンショットは以下のように変換されます:
コード
Code in the online IDE • SelectorGadget
アウトロ
あなたが質問や提案、または何かが正しく動作していない場合は、コメントのセクションでコメントを削除する自由を感じる.
あなたがSerPapiを通してその特徴にアクセスしたいならば、UpdatesにSupport Brave Search 現在のレビュー中です.
あなた
Dimitryと残りのserpapiチーム.
Intro
What will be scraped
非複製の内容のために、私はすでに書きましたwhat is Brave search 前の勇敢なブログ柱で.
イントロ
このブログのポストは、勇敢な検索ウェブの連続シリーズの続きです.ここでは、どのように検索して有機的なニュース結果を勇敢な検索からPythonを使用して参照してくださいよ
beautifulsoup
, requests
, lxml
ライブラリ.Note: HTML layout might be changed in the future thus some of
CSS
selectors might not work. Let me know if something isn't working.
必要条件
pip install requests
pip install lxml
pip install beautifulsoup4
このブログ記事は初心者のためのチュートリアルではないので、上記のライブラリの基本的な知識があることを確認してください.それは難しいことではないコードで表示するために最善を尽くします.また、あなたの基本的な理解を持っていることを確認してください
CSS
セレクターselect()
/select_one()
beautifulsoup
受け入れるメソッドCSS
セレクタ. CSS
selectors reference .輸入
from bs4 import BeautifulSoup
import requests, lxml, json
スクラッププロセス
継続的な砂丘冒険は、勇敢な検索から砂丘映画についてニュースを奪いましょう.
通常、必要なデータを格納したコンテナを見つける必要があります.
スクリーンショットは以下のように変換されます:
for news_result in soup.select('#news-carousel .card'):
# further code..
コンテナを選んだ後、私たちは、タイトル、リンク、表示されたリンク、ソースのウェブサイト、および適切なサムネイルのような他の要素をつかむ必要がありますCSS
セレクタ:コード
from bs4 import BeautifulSoup
import requests, lxml, json
headers = {
'User-agent':
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19582"
}
params = {
'q': 'dune 2021',
'source': 'web'
}
def get_organic_news_results():
html = requests.get('https://search.brave.com/search', headers=headers, params=params)
soup = BeautifulSoup(html.text, 'lxml')
data = []
for news_result in soup.select('#news-carousel .card'):
title = news_result.select_one('.title').text.strip()
link = news_result['href']
time_published = news_result.select_one('.card-footer__timestamp').text.strip()
source = news_result.select_one('.anchor').text.strip()
favicon = news_result.select_one('.favicon')['src']
thumbnail = news_result.select_one('.img-bg')['style'].split(', ')[0].replace("background-image: url('", "").replace("')", "")
data.append({
'title': title,
'link': link,
'time_published': time_published,
'source': source,
'favicon': favicon,
'thumbnail': thumbnail
})
print(json.dumps(data, indent=2, ensure_ascii=False))
get_organic_news_results()
---------------
# part of the output
'''
[
{
"title": "Zendaya talks potential 'Dune' sequel, what she admires about Tom ...",
"link": "https://www.goodmorningamerica.com/culture/story/zendaya-talks-potential-dune-sequel-admires-tom-holland-80555190",
"time_published": "17 hours ago",
"source": "goodmorningamerica.com",
"favicon": "https://imgr.search.brave.com/NygzuIHo7PzzX-7H4OjswMN4xwJ7u3_eEXq55_xXDog/fit/32/32/ce/1/aHR0cDovL2Zhdmlj/b25zLnNlYXJjaC5i/cmF2ZS5jb20vaWNv/bnMvZDQwMjIyNDJk/MjRjZGRmNjI4NmY2/NzUzY2I5YTkyMzIz/YTM4OTJiOTM3YjBm/NDk3OTVjNTIwOTY0/Nzg0YmUwYy93d3cu/Z29vZG1vcm5pbmdh/bWVyaWNhLmNvbS8",
"thumbnail": "https://imgr.search.brave.com/z-Za3HgnUCgTAP8vloSHS33eC0UkjIM8JsMdngGw_Rk/fit/200/200/ce/1/aHR0cHM6Ly9zLmFi/Y25ld3MuY29tL2lt/YWdlcy9HTUEvemVu/ZGF5YS1maWxlLWd0/eS1qZWYtMjExMDEz/XzE2MzQxMzkxNzQw/MjNfaHBNYWluXzE2/eDlfOTkyLmpwZw"
}
...
]
'''
リンクCode in the online IDE • SelectorGadget
アウトロ
あなたが質問や提案、または何かが正しく動作していない場合は、コメントのセクションでコメントを削除する自由を感じる.
あなたがSerPapiを通してその特徴にアクセスしたいならば、UpdatesにSupport Brave Search 現在のレビュー中です.
あなた
Dimitryと残りのserpapiチーム.
Reference
この問題について(有機的なニュースから勇敢な検索), 我々は、より多くの情報をここで見つけました https://dev.to/dmitryzub/scrape-organic-news-from-brave-search-with-python-3d53テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol