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

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

作者: yoyo狐 | 来源:发表于2018-12-05 17:09 被阅读0次

    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是否合适。

    相关文章

      网友评论

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

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