日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【selenium应用实践】怎样实现自动监测百度收录站点链接数量

發布時間:2023/12/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【selenium应用实践】怎样实现自动监测百度收录站点链接数量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用selenium實現自動監測百度收錄站點鏈接數量,SEO優化效果追蹤更輕松

    • 安裝依賴
    • 創建瀏覽器實例
    • 訪問百度引擎并自動輸入site:【域名】后自動點擊搜索按鈕
    • 通過xpath獲取收錄數量字符串并用正則匹配出收錄數量
    • 最后將爬取結果自動發送到企業微信群,實現自動報告收錄數據的目的
    • 最后,為了達到定時自動報告的目的,我加了一個循環,每隔一小時就自動爬取一次并發送收錄結果,完整代碼如下:

前段時間寫了一篇文章介紹了使用python爬蟲自動抓取百度site:命令的結果,但那個方案有個問題是不穩定,而且只是判斷了是否收錄,具體收錄了多少個鏈接不清楚,這無法達到持續關注收錄數量是否有增加的目的,于是用selenium寫了這個實現方案,可以精準監測收錄數量

安裝依賴

import json from selenium.webdriver.chrome.service import Service from selenium import webdriver from selenium.webdriver.common.by import By import re import requests from lxml import etree import time

創建瀏覽器實例

myService = Service(r'./../chromedriver') options = webdriver.ChromeOptions() # options.add_argument('headless') #如果想不彈出瀏覽器則加上這項配置 myChrome = webdriver.Chrome(service=myService, options=options) myChrome.implicitly_wait(10)

訪問百度引擎并自動輸入site:【域名】后自動點擊搜索按鈕

domain = 'jentian.com' myChrome.get('https://www.baidu.com') keywordInput = myChrome.find_element(By.ID, 'kw') keywordInput.send_keys('site:' + domain) searchBtn = myChrome.find_element(By.ID, 'su') searchBtn.click()

通過xpath獲取收錄數量字符串并用正則匹配出收錄數量

time.sleep(3) # 點擊搜索按鈕后要過一會再對頁面文本進行解析, 因為需要時間跳轉及加載內容 dom = etree.HTML(myChrome.page_source) resultStringArr = dom.xpath('//*[@id="content_left"]/div[1]/div/p[1]/b/text()') resultCount = 0 if len(resultStringArr) > 0:resultCountString = resultStringArr[0]resultCountGroup = re.compile(r'\d+').findall(resultCountString)if resultCountGroup:resultCount = ''.join(resultCountGroup) if int(resultCount) > 0:msg = '百度已收錄' + domain + ',收錄數量:' + str(resultCount) else:msg = '百度未收錄' + domain print('抓取完畢!!!', msg, '\n')

最后將爬取結果自動發送到企業微信群,實現自動報告收錄數據的目的

qiWeiWebHook = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=**'#請自動替換成自己的webhook鏈接 postHeaders = {'Content-Type': 'application/json' } msgData = {"msgtype": "text","text": {"content": msg} } requests.post(qiWeiWebHook, headers=postHeaders, data=json.dumps(msgData))

最后,為了達到定時自動報告的目的,我加了一個循環,每隔一小時就自動爬取一次并發送收錄結果,完整代碼如下:

#通過抓取某個域名的site指令結果,判斷是否已被百度收錄代碼 import json from selenium.webdriver.chrome.service import Service from selenium import webdriver from selenium.webdriver.common.by import By import re import requests from lxml import etree import timedef crawlBaiduPickupData():myService = Service(r'./../chromedriver')options = webdriver.ChromeOptions()# options.add_argument('headless') #如果想不彈出瀏覽器則加上這項配置myChrome = webdriver.Chrome(service=myService, options=options)myChrome.implicitly_wait(10)domain = 'jentian.com'while True:myChrome.get('https://www.baidu.com')keywordInput = myChrome.find_element(By.ID, 'kw')keywordInput.send_keys('site:' + domain)searchBtn = myChrome.find_element(By.ID, 'su')searchBtn.click()time.sleep(3) # 點擊搜索按鈕后要過一會再對頁面文本進行解析, 因為需要時間跳轉及加載內容dom = etree.HTML(myChrome.page_source)resultStringArr = dom.xpath('//*[@id="content_left"]/div[1]/div/p[1]/b/text()')resultCount = 0if len(resultStringArr) > 0:resultCountString = resultStringArr[0]resultCountGroup = re.compile(r'\d+').findall(resultCountString)if resultCountGroup:resultCount = ''.join(resultCountGroup)if int(resultCount) > 0:msg = '百度已收錄' + domain + ',收錄數量:' + str(resultCount)else:msg = '百度未收錄' + domainprint('抓取完畢!!!', msg, '\n')qiWeiWebHook = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=*'postHeaders = {'Content-Type': 'application/json'}msgData = {"msgtype": "text","text": {"content": msg}}requests.post(qiWeiWebHook, headers=postHeaders, data=json.dumps(msgData))time.sleep(3600) # 每小時跟進一次if __name__ == '__main__':crawlBaiduPickupData()

總結

以上是生活随笔為你收集整理的【selenium应用实践】怎样实现自动监测百度收录站点链接数量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。