使用Python多线程爬取网站名称

原创 阁主  2026-03-22 13:02:22  阅读 2012 次 评论 0 条
摘要:

以下是使用Python多线程爬取网站名称的示例代码,其中使用了 requests 和 BeautifulSoup4 库。

代码

import requests
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutor

urls = ['https://www.52pojie.cn', 'https://www.baidu.com', 'https://www.mainblog.cn']
def get_title(url):
    # 发送http请求获取html页面内容
    response = requests.get(url)
    html = response.content

    # 解析html页面内容,获取网站标题
    soup = BeautifulSoup(html, 'html.parser')
    title = soup.title.string
    # 输出网站标题
    print(f"{url} - {title}")

# 使用线程池执行get_title函数,并传入不同的URL参数
with ThreadPoolExecutor(max_workers=3) as executor:
    executor.map(get_title, urls)

输出结果

总结

以上代码中,我们首先定义了要爬取的网站地址列表 urls,然后定义了一个 get_title 函数,该函数接受一个 URL 参数,发送 HTTP 请求获取网站 HTML 页面内容,并解析页面获取网站标题,并输出结果。

接下来,我们使用 ThreadPoolExecutor 类创建一个线程池,并将 get_title 函数提交给线程池中的线程进行执行,传入的参数为 urls 列表中的每个子元素。由于我们这里使用了 max_workers=3 参数,因此最多只会同时执行三个线程,分别对应 urls 中的三个网站地址。

注意

运行该脚本时,它将输出每个网站的标题。注意,由于使用了多线程,因此输出的顺序可能与 urls 列表中的顺序不一致。

本文地址:https://www.mainblog.cn/313.html
版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处!
免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。
NEXT:已经是最新一篇了

评论已关闭!