使用网站地图sitemap获取链接来随机访问链接-Python2.7脚本

首先在本机或服务器上部署Python2.7环境

创建一个py文件,把以下代码存放在其中

需要先配置网站地图

最近想弄个sitemap.xml网站地图文件,不用插件的方法网上有很多相关的代码,但其实好多并不好用。 有的……
2023-07-28
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import random
import threading
import time

# 获取全站链接
def get_all_links():
    # 使用网站地图来获取全站链接
    url = 'http://www.daloong.cn/sitemap.xml'
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'lxml')
    links = [loc.text for loc in soup.find_all('loc')]
    return links

# 随机访问链接
def visit_link(link):
    try:
        response = requests.get(link)
        if response.status_code == 200:
            print('访问成功:', link)
        else:
            print('访问失败:', link)
    except:
        print('访问异常:', link)

# 多线程访问链接
def visit_links(links):
    while True:
        random_link = random.choice(links)
        visit_link(random_link)
        time.sleep(1)

# 主函数
def main():
    while True:
        links = get_all_links()
        num_threads = 10  # 线程数
        threads = []
        for _ in range(num_threads):
            t = threading.Thread(target=visit_links, args=(links,))
            threads.append(t)
            t.start()

        # 每10分钟重新获取一次全站链接
        time.sleep(600)

        # 终止所有线程
        for t in threads:
            t.join()

if __name__ == '__main__':
    main()

 

然后执行命令即可,停止脚本使用Ctrl+C,可能需要等待一小段时间,直到脚本进程完全停止。

如果脚本没有响应或无法停止,请尝试使用终端的其他终止命令,如Ctrl+Z或Ctrl+\。

Python #文件名.py

 

版权声明:
作者:Daloong
链接:https://www.daloong.cn/?p=461
来源:This is Daloong's blog
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
使用网站地图sitemap获取链接来随机访问链接-Python2.7脚本
首先在本机或服务器上部署Python2.7环境 创建一个py文件,把以……
<<上一篇
下一篇>>