使用Python多线程爬取网站名称 原创 阁主 2023-03-11 20:25:33 阅读 920 次 评论 0 条 摘要:以下是使用Python多线程爬取网站名称的示例代码,其中使用了 requests 和 BeautifulSoup4 库。 ## 代码 ```python 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) ``` ## 输出结果 ![](https://www.mainblog.cn/zb_users/upload/2023/03/202303112042184884545.png) ## 总结 以上代码中,我们首先定义了要爬取的网站地址列表 urls,然后定义了一个 get_title 函数,该函数接受一个 URL 参数,发送 HTTP 请求获取网站 HTML 页面内容,并解析页面获取网站标题,并输出结果。 接下来,我们使用 ThreadPoolExecutor 类创建一个线程池,并将 get_title 函数提交给线程池中的线程进行执行,传入的参数为 urls 列表中的每个子元素。由于我们这里使用了 max_workers=3 参数,因此最多只会同时执行三个线程,分别对应 urls 中的三个网站地址。 ## 注意 运行该脚本时,它将输出每个网站的标题。注意,由于使用了多线程,因此输出的顺序可能与 urls 列表中的顺序不一致。 本文地址:https://www.mainblog.cn/313.html 版权声明:本文为原创文章,版权归 阁主 所有,欢迎分享本文,转载请保留出处! 免责申明:有些内容源于网络,没能联系到作者。如侵犯到你的权益请告知,我们会尽快删除相关内容。 PREVIOUS:Python面向对象的场景应用(二):张无忌教赵敏九阳神功,赵敏教张无忌化妆。 NEXT:python实现简单的进度条方法 文章导航