href = https://www.ycpai.cn/python/link.get('href')
if href not in visited:
lock.acquire()
visited.add(href)
lock.release()
q.put(href)
except:
pass
if __name__ == "__main__":
q.put('https://www.baidu.com/')
threads = []
for i in range(10):
t = threading.Thread(target=crawl)
threads.append(t)
t.start()
for t in threads:
t.join()
在这个例子中,我们使用队列来存储待爬取的URL,使用set来存储已经访问过的URL 。我们使用lock来保证多个线程对visited的操作是安全的 。在crawl函数中,我们使用requests库来请求URL并使用BeautifulSoup库来解析HTML 。然后我们使用find_all方法来查找所有的链接,并把它们放入队列中 。如果链接没有访问过,则把它放入visited中 。
【Python多线程和队列操作实例】五、
推荐阅读
- python如何将字符转换为数字?
- 在arcgis使用python脚本进行字段计算时是如何解决中文问题的
- 如何使用python3代码查看包的路径?
- 全面部除皱的方法
- 去除面部皱纹的方法
- 牙龈上火怎么止痛
- 牙龈炎几天能好
- 吸烟与二手烟的危害有哪些
- 小腿肌肉外翻怎么矫正呢
- 电脑族如何保护颈椎呢