提升爬虫速度的方式
我们在进行爬虫的过程中,会遇到爬虫速度很慢的情况,这会让我们感到很烦躁,有时候获取的数据量比较多,就会更让人烦躁。不过我们在爬虫过程中要想提高爬虫的速度,还是有很多方法的,今天主要讲下提高爬虫速度的方式有哪些。
这里我们可以通过三个方式去提高速度:多线程爬虫、多进程爬虫和多协程爬虫。
多线程爬虫是以并发的方式执行的,多个线程并不能真正的同时执行,而是通过进程的快速切换加快网络爬虫速度的。简单的多线程爬虫的示例如下:
#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = "http://httpbin.org/ip"
# 要访问的目标HTTPS页面
# targetUrl = "https://httpbin.org/ip"
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "username"
proxyPass = "password"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
# 设置 http和https访问都是用HTTP代理
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}
resp = requests.get(targetUrl, proxies=proxies, headers=headers)
print resp.status_code
print resp.text多进程爬虫可以利用CPU的多核,进程数取决于计算机CPU的处理器个数。由于运行在不同的核上,各个进程的运行是并行的。
协程是一种用户态的轻量级线程,使用协程有许多好处,比如协程的高扩展性和高并发性,一个CPU支持上万协程都不是问题,所以很适合用于高并发处理。
大家在爬虫的时候可以根据自己的需求进行速度的提升,还有如果需要提高爬虫的数据量,对代理也是有要求的,ip池大,速度快,延迟低是获取更多的数据的一个前提条件,有这方面需求的可以咨询这里https://www.16yun.cn/#banner
提升爬虫速度的方式
xiaotaomi
会员积分:7320
我们在进行爬虫的过程中,会遇到爬虫速度很慢的情况,这会让我们感到很烦躁,有时候获取的数据量比较多,就会更让人烦躁。不过我们在爬虫过程中要想提高爬虫的速度,还是有很多方法的,今天主要讲下提高爬虫速度的方式有哪些。
这里我们可以通过三个方式去提高速度:多线程爬虫、多进程爬虫和多协程爬虫。
多线程爬虫是以并发的方式执行的,多个线程并不能真正的同时执行,而是通过进程的快速切换加快网络爬虫速度的。简单的多线程爬虫的示例如下:
#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = "http://httpbin.org/ip"
# 要访问的目标HTTPS页面
# targetUrl = "https://httpbin.org/ip"
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "username"
proxyPass = "password"
proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
"host" : proxyHost,
"port" : proxyPort,
"user" : proxyUser,
"pass" : proxyPass,
}
# 设置 http和https访问都是用HTTP代理
proxies = {
"http" : proxyMeta,
"https" : proxyMeta,
}
# 设置IP切换头
tunnel = random.randint(1,10000)
headers = {"Proxy-Tunnel": str(tunnel)}
resp = requests.get(targetUrl, proxies=proxies, headers=headers)
print resp.status_code
print resp.text多进程爬虫可以利用CPU的多核,进程数取决于计算机CPU的处理器个数。由于运行在不同的核上,各个进程的运行是并行的。
协程是一种用户态的轻量级线程,使用协程有许多好处,比如协程的高扩展性和高并发性,一个CPU支持上万协程都不是问题,所以很适合用于高并发处理。
大家在爬虫的时候可以根据自己的需求进行速度的提升,还有如果需要提高爬虫的数据量,对代理也是有要求的,ip池大,速度快,延迟低是获取更多的数据的一个前提条件,有这方面需求的可以咨询这里https://www.16yun.cn/#banner

22-01-12 16:29

1085

0
回复
暂无评论