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

作者:Leslie-x 时间:2022-12-01 07:16:59 

一:脚本需求

利用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百度权重网站的查询结果过程解析

来源: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
  • asp之家 网络编程 m.aspxhome.com