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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

python批量查询数据库_Python + MySQL 批量查询百度收录

發布時間:2024/10/12 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python批量查询数据库_Python + MySQL 批量查询百度收录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

做SEO的同學,經常會遇到幾百或幾千個站點,然后對于收錄情況去做分析的情況

那么多余常用的一些工具在面對幾千個站點需要去做收錄分析的時候,那么就顯得不是很合適。

在此特意分享給大家一個批量查詢百度收錄狀況的代碼

使用 Python + MySQL(MariaDB) 配合使用

import pymysql

from urllib import request

import re

import time

import os,sys

# 數據操作類

class DataExec:

# 定義私有屬性

# 數據庫名稱

db = "domain"

dt = "bdshoulu"

# 數據庫登錄信息

hostName = "localhost"

userName = "root"

password = "pwd"

# 構造方法

def __init__(self):

self.conn = self.conn()

# 析構方法

def __del__(self):

self.conn.close()

# 創建數據庫連接對象

def conn(self):

host = self.hostName

user = self.userName

password = self.password

dbs = self.db

conn = pymysql.connect(host=host,

user=user,

password=password,

db=dbs,

charset='utf8mb4')

return conn

# 查詢數據

def selectwebsite(self):

dt = self.dt

conn = self.conn

cursor = conn.cursor()

sql = 'select id,website from %s order by id' % dt

try:

cursor.execute(sql)

return cursor.fetchall()

except:

print("%s" % sql)

# 修改數據

def update_shoulu(self, id, shoulu):

dt = self.dt

conn = self.conn

cursor = conn.cursor()

sql = 'update {_table} set shoulu = "{_shoulu}" where id = "{_id}"'.\

format(_table = dt, _shoulu = shoulu, _id = id)

try:

cursor.execute(sql)

# 提交數據

conn.commit()

except:

# 數據回滾

conn.rollback()

def commit(self):

self.conn.commit()

db = DataExec()

results = db.selectwebsite()

for row in results:

id = row[0]

website = row[1]

url = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=site:" + website

# print(url)

try:

req = request.Request(url)

req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36')

# 直接請求

response = request.urlopen(req,timeout=15)

# 獲取狀態碼,如果是200表示成功

if response.status == 200:

# 讀取網頁內容

html = response.read().decode('utf-8', 'ignore')

# print(html)

pattern = re.compile(r'找到相關結果數約(\d+?)個')

m = pattern.search(html)

print(m)

if m:

slnum = m.group(1)

print(id, website, '已收錄 ', slnum)

db.update_shoulu(id, slnum)

else:

pattern = re.compile(r'該網站共有\s*?(.+?)\s*?個網頁被百度收錄')

m = pattern.search(html)

if m:

slnum = m.group(1)

slnum = int(slnum.replace(',',''))

print(id, website, '已收錄 ', slnum)

db.update_shoulu(id, slnum)

else:

print(id, website)

except:

continue

time.sleep(1)

# 統一提交數據

# db.commit()

sys.exit()

上面代碼思路就是從數據庫中抓取出各個域名(website),然后使用Python抓取百度的查詢收錄的頁面,更新其參數,然后對于返回的結果使用正則匹配到對應的收錄結果。整理思路比較簡單,不熟悉的可以讀取代碼走一遍流程即可,需要的同學拿走

總結

以上是生活随笔為你收集整理的python批量查询数据库_Python + MySQL 批量查询百度收录的全部內容,希望文章能夠幫你解決所遇到的問題。

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