批量获取TDK H1等SEO信息,网页标题|关键字|描述批量查询-pyhton

作者: loooooong 分类: python,SEO小工具 发布时间: 2020-07-03 17:40
批量获取tdk h1信息pyton

平时我们做SEO工作的时候,可能需要获取一批页面的tdk一类的SEO信息,但一个个页面复制粘贴太慢,而且还非常容易出错。所以我准备做一款可以帮我批量获取tdk、h1信息的程序。这样无论有多少页面,我都可以轻松搞定了。

​功能介绍:

  • ​第一步:把所有需要查询的URL放入urls.txt中
  • 第二步:运行程序,信息自动生成到excel文件中,方便后续操

程序介绍:

urls.txt

  • 这个文件是用来放url列表的,每行一条;
  • 需要手工新建文件、添加、删除url
  • 程序支持url数量不限,但建议每次不要超过50条;

excelFile.xls

  • 这个文件是用来放TDK,H1信息;
  • 程序自动生成不需要手动新建,程序运行成功后自动生成
  • 生成位置是在程序所在目录里
  • 可以在程序中修改文件名称 file_name = ‘{}.xls’.format(‘excelFile‘)
  • excel中的信息顺序是:title,h1,keywords,description

spider_url_list_title.py

  • python程序,python版本3.7.4
  • 建议使用PyCharm
  • 使用到的库:requests(2.22.0)、pyquery(1.4.0)、xlwt(1.3.0) 没有的需要安装后再运行

工具问题处理

  • 遇到问题可以请不要直接微信提问,可以到我的知识星球或者本文评论区留言,我会定期处理;长期不回复可以微信提醒我。
  • 提问时同时发送我你的本地环境、使用的pyhton版本、程序反馈的错误信息等内容。

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# Author: 陈小龙SEO
#         http://loooooong.com
# 程序更新、问题反馈→ http://loooooong.com/296
# 程序更新、问题反馈→ 陈小龙SEO(公众号),陈小龙SEO部落(知识星球)
# Created on 2020年7月3日16:25:11
import requests
import time
from pyquery import PyQuery
import xlwt
import sys


def urls():
    '''
    获取urls.txt文件中的内容,并生成url列表
    :return: url列表
    '''
    try:
        with open('urls.txt', 'r') as f:
            url_str = f.read()
            url_list = url_str.split('\n')
    except FileNotFoundError as e:
        print('没有找到urls.txt;请检查urls.txt是否存在,是否和程序在同一目录中,错误内容:{}'.format(e))
        sys.exit()
    return url_list


def spider(url):
    ls = requests
    try:
        req = ls.get(url)
        time.sleep(0.5)  # 避免给网站服务器压力
    except Exception as e:
        print('抓取页面时出现错误,请检查urls.txt是否符合规范,错误内容:{}'.format(e))
        return False
    return req


def tdkh(req):
    '''
    获取页面的TDK h1 信息
    :param req:
    :return:
    '''
    try:
        req = PyQuery(req.text)
        title = req('title').text()
        keywords = req('[name=keywords]').attr('content')
        description = req('[name=description]').attr('content')
        h1 = req('h1').text()
    except Exception as e:
        print('页面分析出现错误,错误内容:{}'.format(e))
        return False, False, False, False
    return title, h1, keywords, description


def save(file_name):
    '''
    存储TDK信息到excel中
    :param file_name:
    :return:
    '''
    try:
        myWorkbook.save(file_name)
    except PermissionError:
        print('请退出{}后在运行本程序'.format(file_name))
        sys.exit()

urllist = urls()  # 1. 获取url列表
myWorkbook = xlwt.Workbook()  # 2. 创建Excel工作薄
mySheet = myWorkbook.add_sheet('陈小龙SEO工具')  # 3. 添加Excel工作表
file_name = '{}.xls'.format('excelFile')  # 文件名称,可以修改
save(file_name)
errer_urls = []  # 存储出现错误的url

for i in range(len(urllist)):
    url = urllist[i]
    if url == '':
        print('跳过空行')
        continue
    req = spider(url)
    if req is False:
        print('页面抓取出现错误,自动跳过,url:{}'.format(url))
        errer_urls.append(url)
        continue
    title, h1, keywords, description = tdkh(req)
    if title is False:
        print('页面分析出现错误,自动跳过,url:{}'.format(url))
        errer_urls.append(url)
        continue
    # 生成excl内容
    mySheet.write(i, 0, title)
    mySheet.write(i, 1, h1)
    mySheet.write(i, 2, keywords)
    mySheet.write(i, 3, description)

save(file_name)
print('程序运行完成……\n 抓取URL{}个'.format(len(urllist)))
if len(errer_urls) is not 0:
    print('一下是出现错误的url,你可以检查url错误后重新加入')
    for u in errer_urls:
        print(u)
(付费后加我微信 long724229 即可加入我的付费交流群)

———————–

公众号:陈小龙SEO
知乎:陈小龙SEO优化

知识星球:陈小龙SEO部落

博客:http://loooooong.com/

欢迎大家加我的微信或付费交流群现价59元/年,初建阶段,很少发言,考虑清楚与我沟通。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

一条评论
专栏推荐