Python多线程爬取案例的完整攻略如下:
1. 多线程爬取网页内容
以下是一个示例,演示如何使用Python多线程爬取网页内容:
import requests
import threading
def get_url_content(url):
response = requests.get(url)
print(response.content)
if __name__ == '__main__':
urls = ['https://www.baidu.com', 'https://www.google.com', 'https://www.bing.com']
threads = []
for url in urls:
t = threading.Thread(target=get_url_content, args=(url,))
threads.append(t)
t.start()
for t in threads:
t.join()
在上面的示例中,首先导入了requests
和threading
模块。定义了一个get_url_content()
函数,用于获取指定URL的内容。在get_url_content()
函数中,使用requests.get()
方法获取URL的内容,并使用print()
方法输出内容。
在if __name__ == '__main__':
语句块中,定义了一个URL列表urls
。使用threading.Thread()
方法创建多个线程,并将它们添加到threads
列表中。使用start()
方法启动线程。使用join()
方法等待所有线程执行完毕。
2. 多线程爬取图片
以下是一个示例,演示如何使用Python多线程爬取图片:
import requests
import threading
def download_image(url, filename):
response = requests.get(url)
with open(filename, 'wb') as f:
f.write(response.content)
if __name__ == '__main__':
urls = ['https://www.example.com/image1.jpg', 'https://www.example.com/image2.jpg', 'https://www.example.com/image3.jpg']
threads = []
for i, url in enumerate(urls):
filename = f'image{i+1}.jpg'
t = threading.Thread(target=download_image, args=(url, filename))
threads.append(t)
t.start()
for t in threads:
t.join()
在上面的示例中,首先导入了requests
和threading
模块。定义了一个download_image()
函数,用于下载指定URL的图片。在download_image()
函数中,使用requests.get()
方法获取URL的内容,并使用open()
方法将内容写入文件。
在if __name__ == '__main__':
语句块中,定义了一个URL列表urls
。使用enumerate()
方法遍历URL列表,并为每个URL生成一个文件名。使用threading.Thread()
方法创建多个线程,并将它们添加到threads
列表中。使用start()
方法启动线程。使用join()
方法等待所有线程执行完毕。
希望这些示例能帮您了解Python多线程爬取案例的完整攻略。在实际应用中,应根据需要使用多线程技术,并注意线程之间的同步和互斥。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 多线程爬取案例 - Python技术站