分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

Request爬取网站(seo.chinaz.com)百度权重的查询结果

发布时间:2023-09-06 02:19责任编辑:沈小雨关键词:暂无标签

一:脚本需求

利用Python3查询网站权重并自动存储在本地数据库(Mysql数据库)中,同时导出一份网站权重查询结果的EXCEL表格

数据库类型:MySql

数据库表单名称:website_weight

表单内容及表头设置:表头包含有id、main_url(即要查询的网站)、website_weight(网站权重)

要查询的网站:EXCEL表格

二:需求实现

一:利用openpyxl模块解析excel文件,将查询的网站读取到一个列表中保存

# 解析excel文件,取出所有的urldef 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文件写入:

Request爬取网站(seo.chinaz.com)百度权重的查询结果

原文地址:https://www.cnblogs.com/li1992/p/9863056.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved