Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析


Posted in Python onAugust 13, 2019

一:脚本需求

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

数据库类型:MySql

数据库表单名称:website_weight

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

Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析

要查询的网站:EXCEL表格

Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析

二:需求实现

一:利用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执行

Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析

数据库:

Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析

excel文件写入:

Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的魔法方法深入理解
Jul 09 Python
初步解析Python中的yield函数的用法
Apr 03 Python
Python基础入门之seed()方法的使用
May 15 Python
详解Python的Django框架中的Cookie相关处理
Jul 22 Python
举例详解Python中yield生成器的用法
Aug 05 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
pygame实现俄罗斯方块游戏(基础篇2)
Oct 29 Python
利用matplotlib为图片上添加触发事件进行交互
Apr 23 Python
Python 执行矩阵与线性代数运算
Aug 01 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
实例讲解Python中sys.argv[]的用法
Jun 03 Python
python实现对服务器脚本敏感信息的加密解密功能
Aug 13 #Python
python多线程+代理池爬取天天基金网、股票数据过程解析
Aug 13 #Python
Python字符串处理的8招秘籍(小结)
Aug 13 #Python
python实现批量修改服务器密码的方法
Aug 13 #Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 #Python
Python实现微信翻译机器人的方法
Aug 13 #Python
python读写csv文件的方法
Aug 13 #Python
You might like
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
Nodejs全栈框架StrongLoop推荐
2014/11/09 NodeJs
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
JavaScript实现在标题栏上显示当前日期的方法
2015/03/19 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
微信小程序使用GoEasy实现websocket实时通讯
2020/05/19 Javascript
vue cli4.0项目引入typescript的方法
2020/07/17 Javascript
基于vue中的scoped坑点解说
2020/09/04 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
python str与repr的区别
2013/03/23 Python
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
用Python进行一些简单的自然语言处理的教程
2015/03/31 Python
python简单文本处理的方法
2015/07/10 Python
使用Python处理Excel表格的简单方法
2018/06/07 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
Python实现Word表格转成Excel表格的示例代码
2020/04/16 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
初中生三年学习生活的自我评价
2013/11/03 职场文书
普通院校学生的自荐信
2013/11/27 职场文书
师德学习感言
2014/01/31 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
2015年材料员工作总结
2015/04/30 职场文书
建党伟业的观后感
2015/06/01 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
心术观后感
2015/06/11 职场文书
六一文艺汇演主持词
2015/06/30 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
python实现大文本文件分割成多个小文件
2021/04/20 Python
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python