Python クローラーを使用して、Baidu にドメイン名が含まれているかどうかを自動的に監視する方法

Python クローラーを使用して、Baidu にドメイン名が含まれているかどうかを自動的に監視する方法


新しいサイトを立ち上げるとき、SEO を意識している企業や人々は、自分の Web サイト (ドメイン名) が Baidu に含まれているかどうかを非常に気にする傾向があります。これは、Web サイトを検索できるのは Baidu だけであり、あなたの Web サイトはまさにこの世界に存在するためです。インターネット (ここにほのめかしがあります。以前、本の中で興味深い言葉を見たことがあります。 インターネット時代、世の中に何かが存在するかどうかわからない場合は、百度で検索してください。見つからない場合は、存在しないと考えてよい )。

では、あなたのサイトが Baidu によってインデックスされているかどうかを確認するにはどうすればよいでしょうか? もちろん、最も直接的な方法は、Web サイト名 (通常はホームページのタイトル) を直接検索することですが、理論的には、この方法は正確ではありません。Web サイト名が含まれている可能性があるためですが、重みの問題により、ランキングは次のようになります。理論的には、すべての検索結果ページを調べて、それが含まれていないことを確認する必要があります。作業負荷が高すぎます。もっと良い方法があるはずです。

SEO についてある程度の知識がある人は、別のコマンドを間違いなく知っているでしょう: site:xxx.com, サイトに含まれているすべてのページを一覧表示できます。これは正確ですが、人間のエネルギーは限られています。時々実行するのは時間の無駄です。含まれているかどうかを確認してください。これは機械で行うことができますか?

はい、とても簡単です。私は Python で小さなクローラーを書きました。これは、しばらくすると最新のサイト コマンドの結果を自動的に取得し、その結果を企業の WeChat に自動的に送信します。自動監視の目的はここで達成されます。これは非常に便利です。便利です。以下のサンプル コードを共有してください。

まず、リクエストと lxml モジュールをインストールする必要があります。

pip install requests
pip install lxml

以下は具体的なコードです

#通过抓取某个域名的site指令结果,判断是否已被百度收录代码
import json

import requests
from lxml import etree
import time
if __name__ == '__main__':
    while True:
        domain = 'xxx.com'
        url = 'https://www.baidu.com/s?ie=UTF-8&wd=site%3A'+domain
        headers = {
    
    
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
        }
        response = requests.get(url=url, headers=headers)
        dom = etree.HTML(response.text)
        #通过xpath解析页面结构以判断是否有收录链接
        resultList = dom.xpath('//div[contains(@class,"c-container")]')
        if len(resultList) > 0:
            msg = '百度已收录'+domain+',收录数量'+str(len(resultList))
        else:
            msg = '百度未收录'+domain
        print('抓取完毕!!!', msg, '\n')
        #将收录结果发送到企业微信
        qiWeiWebHook = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx'
        postHeaders = {
    
    
            'Content-Type': 'application/json'
        }
        msgData = {
    
    
            "msgtype": "text",
            "text": {
    
    
                "content": msg
            }
        }
        postResponse = requests.post(qiWeiWebHook, headers=postHeaders, data=json.dumps(msgData))
        print(postResponse.text)
        #每小时爬取一次
        time.sleep(3600)

注:
1) 変数 qiWeiWebHook は、企業 WeChat 内部グループ チャット ロボットの Webhook リンクです。これは、職場でレポート データや警告を自動的に送信するのに非常に役立ちます。送信に WeChat を使用する必要がない場合は、コメント アウトできます。コードのこの部分; 2
) 上記の含まれる数値は 1 ページのみです。含まれる数値全体が必要な場合は、ページをめくって合計する必要があります。
操作効果は次のとおりです
ここに画像の説明を挿入します
。新しいクローラ技術交流グループです。クローラの研究をされている方も、コミュニケーションのためにグループに参加してください。
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/one_and_only4711/article/details/126155301