要并行化一个爬虫,可以使用多线程或多进程来实现。以下是使用Python的多线程和多进程库进行并行化爬虫的示例代码。
使用多线程的示例代码:
import threading
import requests
def crawl(url):
# 爬取网页的逻辑
response = requests.get(url)
# 处理爬取到的数据
def parallel_crawler(urls):
threads = []
for url in urls:
t = threading.Thread(target=crawl, args=(url,))
threads.append(t)
t.start()
# 等待所有线程完成
for t in threads:
t.join()
urls = ["http://example.com/page1", "http://example.com/page2", "http://example.com/page3"]
parallel_crawler(urls)
使用多进程的示例代码:
import multiprocessing
import requests
def crawl(url):
# 爬取网页的逻辑
response = requests.get(url)
# 处理爬取到的数据
def parallel_crawler(urls):
processes = []
for url in urls:
p = multiprocessing.Process(target=crawl, args=(url,))
processes.append(p)
p.start()
# 等待所有进程完成
for p in processes:
p.join()
urls = ["http://example.com/page1", "http://example.com/page2", "http://example.com/page3"]
parallel_crawler(urls)
在这两个示例中,crawl函数是爬取网页的逻辑,你可以根据自己的需要进行修改。parallel_crawler函数接受一个包含URL的列表,并创建多个线程或进程来并行执行爬取任务。最后,使用join方法等待所有线程或进程完成。这样就可以实现并行化的爬虫。