PythonはBing検索の背景画像をクロールします

この記事のテキストと写真はインターネットからのものであり、学習とコミュニケーションのみを目的としています。商用目的ではありません。ご不明な点がございましたら、お問い合わせください。

次の記事はCodeZhuji、著者LiuYaxiからのものです

Pythonクローラー、データ分析、Webサイト開発、その他のケースチュートリアルビデオはオンラインで無料で視聴できます

https://www.xin3721.com/eschool/pythonxin3721/

おそらくほとんどの友人はすでにバイドゥ検索の広告推奨メカニズムを嫌っていますが、それが少しの商用コンテンツ検索を伴うとしても、vb.netチュートリアルの
結果はほとんどすべての広告です。実際、Google検索に加えて、ニッチな検索エンジンもあります。効果はBaiduよりもそれほど悪くはありません。重要なのは、検索結果に広告がほとんどないことです。彼はMicrosoftの息子であるBingSearchです。

ここに写真の説明を挿入

ここに写真の説明を挿入

Bing検索を開くたびに、美しい背景画像が表示され、毎日更新されます。以前、Microsoftは各画像のダウンロードアドレスも提供していましたが、後でキャンセルされました。しかし、c#チュートリアルこれらの背景画像を取得してコンピューターの壁紙として設定できるとしたら、それは非常に興味深いことではないでしょうか。では、これらの写真を取得するにはどうすればよいでしょうか。今日は、必要なものをキャプチャするPythonスクリプトを作成する方法を説明します。検索する必要のある背景画像。

まず、IDEをインストールします。ここでは、最も人気のあるPython PyCharmを選択します。これは、公式Webサイトからダウンロードできます。

https://www.jetbrains.com/pycharm/download/#section=windows

インストール方法はとても簡単です。次のステップに進んでください。

インストールが完了したら、IDEを開き、Pythonプロジェクトを作成します

ここに写真の説明を挿入

完了後、後でコードを作成するために、事前にいくつかのライブラリをインストールする必要があります。

リクエスト

BeautifulSoup4

lxml

インストールは簡単です。[ファイル]-> [設定]ダイアログボックスで、コンパイラのpythonベースのチュートリアルの左上隅をクリックします。

ここに写真の説明を挿入
ここに写真の説明を挿入

上の図のpipをダブルクリックし、ポップアップダイアログボックスで上記の3つのライブラリ名を検索し、左下隅にあるInstallPackageをクリックしてインストールを完了します。

ここに写真の説明を挿入

終了後、コードの記述を開始します。

まず、必要な4つのパッケージコードを紹介します。

if __name__=='__main__':
    for i in range(8):
        url = 'https://cn.bing.com/HPImageArchive.aspx?idx={}&n=1'.format(i)
        html = get_page(url)
        soup = BeautifulSoup(html, 'lxml')
        text = soup.find(name='url').string
        img_url = 'https://cn.bing.com' + text
        img_name = re.match('^/th\?id=(.*?)&', text).group(1)
        download(img_url, '填你自己想保存的文件路径c:/..', img_name)

次に、get_page関数を定義して、リクエストによってリクエストされたWebページのコンテンツを取得しますが、アクセスするブラウザのふりをするには、ここでUser-Agentフィールドを変更する必要があります。

def get_page(url):
    headers = {
    
    
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36'
    }
    response = requests.get(url, headers=headers)
      if response.status_code == 200:     #响应状态码表示服务器对请求的响应结果。200代表服务器响应成功,403代表禁止访问,404代表页面未找到
        return response.text

写真をダウンロードするための関数ダウンロードを定義しましょう。渡されるパラメーターには、写真のurlパス、自分で定義したフォルダーパス、および写真の名前が含まれます。

def download(url, path, fname):
    response = requests.get(url)
    if response:
        with open(os.path.join(path, fname), 'wb') as f:
            f.write(response.content)
            print('successful: {} .'.format(fname))
    else:
        print('faild: {}.'.format(fname))

さて、上記の2つのメイン関数を定義した後、それらを常に呼び出すようにメイン関数を定義します。ダウンロード関数のパスには、独自のフォルダーパスを入力する必要があることに注意してください。Bingは公式に8つの元の画像のみを保存するため、単純かつ無礼に8回だけループします。コードは次のとおりです。

if __name__=='__main__':
    for i in range(8):
        url = 'https://cn.bing.com/HPImageArchive.aspx?idx={}&n=1'.format(i)
        html = get_page(url)
        soup = BeautifulSoup(html, 'lxml')
        text = soup.find(name='url').string
        img_url = 'https://cn.bing.com' + text
        img_name = re.match('^/th\?id=(.*?)&', text).group(1)
        download(img_url, '填你自己想保存的文件路径c:/..', img_name)

さて、上記は完全なコードコンテンツです、一度それを実行してみましょう:

ここに写真の説明を挿入

結果はまったく問題ありません。フォルダ内の写真も保存されます。

ここに写真の説明を挿入

自由に開いてください、それはとても美しいです:

ここに写真の説明を挿入

写真がとても美しいと思いましたか?それを見つけてコンピューターのデスクトップとして設定すると、効果がわかります。

ここに写真の説明を挿入

おすすめ

転載: blog.csdn.net/chinaherolts2008/article/details/112911416