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 批量查询百度收录相关推荐
- python如何查询数据库_python如何实现查询sql数据库并生成html文件?
你好. !/usr/bin/env python -- coding: utf-8 -- import MySQLdb as mdb 连接数据库 conn = mdb.connect('localho ...
- python自动备份数据库_Python Mysql自动备份脚本
测试系统环境 Windows 2003 python 2.5.1 mysql 5.0.1 应该只适用于Win,因为调用了CMD. 增量备份,因为自用,数据库不大. 回头有了需求加上自检测,5天 ...
- c# mysql 批量导入_C#:MySql批量数量导入
现在对数据库(以MySql为例)的操作大多会封装成一个类,如下例所示: namespace TESTDATABASE { public enum DBStatusCode { ALL_OK, MySq ...
- python mysql批量查询_Python + MySQL 批量查询百度收录
做SEO的同学,经常会遇到几百或几千个站点,然后对于收录情况去做分析的情况 那么多余常用的一些工具在面对几千个站点需要去做收录分析的时候,那么就显得不是很合适. 在此特意分享给大家一个批量查询百度收录 ...
- 实现mysql百度式查询_Python + MySQL 批量查询百度收录
做SEO的同学,经常会遇到几百或几千个站点,然后对于收录情况去做分析的情况 那么多余常用的一些工具在面对几千个站点需要去做收录分析的时候,那么就显得不是很合适. 在此特意分享给大家一个批量查询百度收录 ...
- mysql语句批量更新数据库_sql 更新批量数据库语句
JDBC(六)批量处理sql 批量更新是分组在一起的一批更新,并以"批量"方式发送到数据库,而不是逐个发送更新. 一次发送一批更新到数据库,比一个一个发送更快,等待每个更新完成. ...
- python脚本迁移数据库_Python迁移MySQL数据到MongoDB脚本
MongoDB是一个文档数据库,在存储小文件方面存在天然优势.随着业务求的变化,需要将线上MySQL数据库中的行记录,导入到MongoDB中文档记录. 一.场景:线上MySQL数据库某表迁移到Mong ...
- python查询数据库语句大全_sql:查询语句大全
一.mysql 查看数据库:SHOW DATABASES; 创建数据库:CREATE DATABASE db_name; 使用数据库:USE db_name; 删除数据库:DROP DATABASE ...
- mysql查询数据库日期_mysql如何查询日期与时间
前言: 在项目开发中,一些业务表字段经常使用日期和时间类型,而且后续还会牵涉到这类字段的查询.关于日期及时间的查询等各类需求也很多,本篇文章简单讲讲日期及时间字段的规范化查询方法. 1.日期和时间类型 ...
最新文章
- python3 str bytes 字符串 字节 互相转换
- 【Cocosd2d实例教程六】Cocos2d实现屏幕背景的自动滚动
- setModel 的核心逻辑
- NCRE四级网络工程师考题详解----对等计算模型(P2P)
- 【struts框架】第一节Action-struts基础
- 【Kafka】Exiting due to: org/apache/kafka/common/protocol/SecurityProtocol
- Stack Overflow RToax
- 悲剧!因Redis分布式锁造成的P0级重大事故,整个项目组被扣了绩效...
- [环境搭建] VS-Visual Studio-IIS Express 支持局域网访问
- 论白piao的重要性
- 空洞卷积的超详细解释
- 计算机单位厘米 像素,像素厘米转换器
- Python常用库大全
- 阿里云企业邮箱版本对比(标准版、集团版和尊享版)
- HTML5设置直线长度,cad绘制直线怎样设置长度
- 计算机考研数据库原理知识,数据库原理考研资料题库真题整理
- 地图下载软件(持续更新)
- 海奥华预言--第十一章 谁是基督?
- 通过Charmed Ceph 在 H3C UniServer R4950 G5 服务器上 部署独立的Ubuntu Ceph 存储集群
- kali linux通过ssh+putty来实现远程登录(亲测有效)
热门文章
- 视觉盛宴篇!推荐 12 个好用的 CSS 的开源项目,YYDS !
- go的错误处理(异常捕获、处理):defer+recover机制处理错误、自定义异常(自定义错误)
- linux shell带索引下标遍历数组
- sonarqube下载地址
- go基础语法:数组定义
- golang map的定义语法
- k8s控制器:DaemonSet
- JVM指令:invokeSpecial/invokeVirtual/invokeStatic/invokeInterface/invokeDynamic方法调用指令
- Python爬虫开发:requests库的使用--发送带参数get请求
- solr怎么设置搜索结果排名靠前?