美文网首页
python3:页面链接检查

python3:页面链接检查

作者: yoyo狐 | 来源:发表于2018-12-07 15:53 被阅读0次

python脚本先贴上

# -*- coding: utf-8 -*-

import requests
import re
from urllib.parse import urljoin
import csv
import chardet

header = {
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                 'Chrome/70.0.3538.77 Safari/537.36',
}

def web_link_collection(page_url):
   lis = []
   try:
       resp = requests.get(page_url, headers=header, timeout=3)
   except Exception as e:
       print('error:', e)
   else:
       encoding = chardet.detect(resp.content)["encoding"]
       resp.encoding = encoding
       link_list = re.findall(r'<a.*?href=["\'](.*?)["\'].*?>(.*?)</a>', resp.text, re.S | re.I)
       for link in link_list:
           url = urljoin(page_url, link[0])
           sc = url_status(url.strip())
           text = link[1]
           print([url, sc, text])
           lis.append([url, sc, text])
   return lis

def url_status(url):
   try:
       res = requests.get(url, headers=header, allow_redirects=False)
   except Exception as e:
       print('error:', e)
   else:
       sc = res.status_code
       if sc == 301 or sc == 302:
           loc_url = res.headers['Location']
           sc = '%s#%s' % (sc, loc_url)
       return sc

if __name__ == '__main__':
   url = ''  # 需要查询的页面
   lis = web_link_collection(url)

   file = open('result.csv', 'w', encoding='utf-8', newline='')
   cw = csv.writer(file)
   cw.writerow(['URL', 'Status_code', '链接文本'])
   for line in lis:
       cw.writerow(line)
   file.close()

脚本说明

  1. 功能:采集网页上所有链接,存入csv。
  • 格式:url - 状态码(如果是301或302,则获取跳转后的链接) - 链接文本
  1. 作用
  • 是否存在500、404、301、302等页面。
  • 文字链接:链接文本是否设置正确;图片链接:查看是否有alt属性。
  • 部分链接是否需要添加rel="nofollow",或添加title=""属性,或使用JS代替。

扩展阅读:https://searchengineland.com/heres-what-happened-when-i-followed-googlebot-for-3-months-308674

相关文章

  • python3:页面链接检查

    python脚本先贴上 脚本说明 功能:采集网页上所有链接,存入csv。 格式:url - 状态码(如果是301或...

  • Web功能测试点1

    一、页面链接检查:测试每一个链接是否都有对应的页面,并且页面之前可以正确切换。 二、相关性检查: 1、功能相关性:...

  • web 关注

    一、页面链接检查 测试每一个链接是否都有对应的页面,并且页面之前可以正确切换。 二、相关性检查: 1、功能相关性:...

  • web系统中的43个功能测试点

    1 页面链接检查 每一个链接是否都有对应的页面,并且页面之间切换正确。可以使用一些工具,如:LinkBotPro、...

  • ForEach_Controller实现页面链接检查

    ForEach控制器类似python中的for循环,对入参的一个数组进行一次循环,所以入参基本上通过关联获得,比如...

  • 一、python3 环境构建

    python3 环境检查 mac 默认自动安装python2.7 检查是否安装了python3 尝试在终端输入 表...

  • Python 3.6一键安装脚本 for CentOS/Debi

    安装 1、检查下系统是否有Python3 python3 -V 2、安装Python3 然后再输入python3 ...

  • Web测试不容易被关注的问题

    安全问题考虑 直接URL链接检查: 在Web系统中,匿名在地址栏直接输入各个功能页面的URL地址,检查系统是否处理...

  • CentOS7安装Python3.x,Python2和Pytho

    原文链接我的博客keywords: 云服务器,CentOS7, Python3,Python3,Linuxdesc...

  • Python-01基础-13功能模块

    Python 基础-13 功能模块 Python2 和 Python3 并存 Python3 安装配置 参考链接:...

网友评论

      本文标题:python3:页面链接检查

      本文链接:https://www.haomeiwen.com/subject/tewthqtx.html