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实现删除文件与目录的方法
Nov 10 Python
Python中使用Tkinter模块创建GUI程序实例
Jan 14 Python
Python中实现常量(Const)功能
Jan 28 Python
Python最长公共子串算法实例
Mar 07 Python
讲解Python中的标识运算符
May 14 Python
pip install urllib2不能安装的解决方法
Jun 12 Python
Python中创建二维数组
Oct 17 Python
对matplotlib改变colorbar位置和方向的方法详解
Dec 13 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
Keras 使用 Lambda层详解
Jun 10 Python
Python实现数字的格式化输出
Aug 01 Python
python自动计算图像数据集的RGB均值
Jun 18 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
用PHP实现递归循环每一个目录
2010/08/08 PHP
php设计模式 Observer(观察者模式)
2011/06/26 PHP
PHP获取时间排除周六、周日的两个方法
2014/06/30 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
利用进制转换压缩数字函数分享
2014/01/02 Javascript
js实现图片漂浮效果的方法
2015/03/02 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
jquery彩色投票进度条简单实例演示
2020/07/23 Javascript
jQuery AJAX timeout 超时问题详解
2016/06/21 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
vue判断input输入内容全是空格的方法
2018/03/02 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
2020/12/19 Vue.js
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
海淘母婴商城:国际妈咪
2016/07/23 全球购物
Original Penguin英国官方网站:美国著名休闲时装品牌
2016/10/30 全球购物
运动会入场解说词300字
2014/01/25 职场文书
青年志愿者事迹材料
2014/02/07 职场文书
测控技术自荐信
2014/06/05 职场文书
出租房屋协议书
2014/09/14 职场文书
计算机实训报告范文
2014/11/05 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
学校后勤工作总结2015
2015/05/15 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP
python基础之类方法和静态方法
2021/10/24 Python
Python学习之时间包使用教程详解
2022/03/21 Python