一:脚本需求
利用Python3查询网站权重并自动存储在本地数据库(Mysql数据库)中,同时导出一份网站权重查询结果的EXCEL表格
数据库类型:MySql
数据库表单名称:website_weight
表单内容及表头设置:表头包含有id、main_url(即要查询的网站)、website_weight(网站权重)
要查询的网站:EXCEL表格
二:需求实现
一:利用openpyxl模块解析excel文件,将查询的网站读取到一个列表中保存
# 解析excel文件,取出所有的url
def get_urls(file_path):
wb = load_workbook(file_path)
sheet = wb.active
urls = []
for cell in list(sheet.columns)[1]:
if cell != sheet['B1']:
urls.append(cell.value)
return wb, urls
二:分析请求发送,伪造请求,取得HTML页面
# 伪造请求,取得html页面
def get_html(url):
# 定义http的请求Header
headers = {}
# random.randint(1,99) 为了生成1到99之间的随机数,让UserAgent变的不同。
headers[
'User-Agent'] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537." + str(
random.randint(1, 99))
# Referer地址使用待查询的网址
headers['Referer'] = "http://seo.chinaz.com/" + url + "/"
html = ''
try:
html = requests.get("http://seo.chinaz.com/" + url + "/", headers=headers, timeout=5).text
except Exception:
pass
return html
三:分析HTML页面,利用BeautifulSoup模块提取数据
# 利用BeautifulSoup模块从html页面中提取数据
def get_data(html, url):
if not html:
return url, 0
soup = bs(html, "lxml")
p_tag = soup.select("p.ReLImgCenter")[0]
src = p_tag.img.attrs["src"]
regexp = re.compile(r'^http:.*?(\d).gif')
br = regexp.findall(src)[0]
return url, br
四:数据库连接配置,并获取游标
# 连接数据库
def get_connect():
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
passwd='root',
db='seotest',
charset="utf8")
# 获取游标对象
cursor = conn.cursor()
return conn, cursor
五:主程序逻辑编写
if __name__ == "__main__":
#命令行执行脚本文件,获取excel文件路径
file_path = sys.argv[1]
#获取URL列表和excle工作簿
wb, urls = get_urls(file_path)
#获取数据库连接和游标
conn, cursor = get_connect()
#获取工作簿当前工作sheet
sheet = wb.active
#数据库插入语句
sql_insert = '''insert into website_weight(main_url, website_weight) values (%s, %s)'''
for row, url in enumerate(urls):
if not url: continue
html = get_html(url)
data = get_data(html, url)
# 插入数据到数据库
cursor.execute(sql_insert, data)
# 插入数据到Excel表中
cell = sheet.cell(row=row + 2, column=3)
cell.value = data[1]
# 终端打印插入的数据
print(data)
conn.commit()
conn.close()
wb.save(file_path)
wb.close()
# cmd命令:python3 F:\算法与结构\网站权重.py F:\website.xlsx
三:脚本运行及其实现结果
CMD执行
数据库:
excel文件写入:
来源:https://www.cnblogs.com/li1992/p/9863056.html
标签:python,request,爬取,网站,百度权重,查询结果
0
投稿
猜你喜欢
ASP从数据库中获取下载文件
2007-10-06 21:17:00
详解运行Python的神器Jupyter Notebook
2022-01-20 13:21:56
一文理解MySQL数据库的约束与表的设计
2024-01-21 08:31:12
学会用Python实现滑雪小游戏,再也不用去北海道啦
2023-07-05 03:25:11
解读ASP.NET 5 & MVC6系列教程(9):日志框架
2023-06-30 06:10:57
如何用Python徒手写线性回归
2023-06-12 13:47:14
SQLSERVER SQL性能优化技巧
2024-01-22 14:02:42
MySQL RC事务隔离的实现原理
2024-01-29 06:12:23
python反爬虫方法的优缺点分析
2023-09-07 11:38:02
分享一个Emeditor压缩样式的宏
2010-08-16 12:30:00
Python3 Random模块代码详解
2023-04-11 01:36:20
一文了解MySQL事务隔离级别
2024-01-24 11:23:02
详解Python字符串原理与使用的深度总结
2021-09-17 17:31:14
Web开发之JavaScript
2024-04-26 17:13:54
Python 异步等待任务集合
2022-08-14 17:23:22
动态语言、动态类型语言、静态类型语言、强类型语言、弱类型语言介绍
2023-04-24 19:48:44
Python Dataframe常见索引方式详解
2023-06-21 21:03:25
Python多进程并发与多线程并发编程实例总结
2023-06-28 02:16:15
一文带你了解Python闭包的基本用法
2022-01-01 19:54:25
vue实现百度搜索功能
2024-05-05 09:11:34