python3采集网页上所有的超链接URL及文本

python3脚本先放上

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

def caiji(url):
    file = open('result.csv', 'w', encoding='utf-8', newline='')
    cw = csv.writer(file)
    cw.writerow(['URL', 'Anchor'])

    resp = requests.get(url)
    encoding = chardet.detect(resp.content)["encoding"]
    # print(encoding)
    resp.encoding = encoding
    link_list = re.findall(r'<a.*?href="(.*?)".*?>(.*?)</a>', resp.text, re.S|re.I)
    for link in link_list:
        a = urljoin(url, link[0]), link[1]
        print(a)
        cw.writerow(a)

    file.close()

if __name__ == '__main__':
    url = ''  # 要采集的URL
    caiji(url) 

稍做解释

  1. 上述脚本结果存入Excel,其中newline=''不会出现空行。
  2. python正则导入模块import re,URL及其文本匹配<a.*?href="(.*?)".*?>(.*?)</a>
  3. 以下这两行以便python正确识别网页编码,以防乱码。
encoding = chardet.detect(resp.content)["encoding"]
resp.encoding = encoding
  1. urljoin(url, link[0]) Url相对路径,改为绝对路径。

对SEO作用

  1. 方便查看网页上有那些超链接,以便进一步查看是否是404、301等。
  2. 根据First link counts原则,查看相同Url,第一个Url的anchor是否合适。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 6,378评论 0 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,791评论 19 139
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,389评论 4 16
  • 前言 初次接触Python,是以为测试同事用来做自动化测试,这两天有空“研究”了一下Python网络爬虫,所谓“研...
    yuyangkk阅读 1,955评论 0 0
  • Python常用库大全,看看有没有你需要的。 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交...
    XDgbh阅读 16,016评论 4 147

友情链接更多精彩内容