相信很多做爬虫的同学都会爬电商网站,电商数据也是很有价值的。今天我们从一个特别的需求出发去获取电商数据,那就是如何从大量的商品数据里面去找到降价的商品。我们就以京东超市为实践数据来源:chaoshi.jd.com/。
京东这样大型的电商网站,想要获取数据很不容易,他们的反爬机制是很严的,今天我们只是做个实践,所要获取的数据量不是很大,但是为了防止获取数据过程中触发反爬机制,所以简单的做了些反爬措施。随机ua的更换,cookie的获取,代理IP的使用。关于代理的使用,访问这样的网站也是需要高质量的代理IP才行,这里推荐亿牛云提供的爬虫代理。代理在爬虫程序里面的具体使用如下所示:
#! -*- 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
每个商品每天都会爬一次,一共有 几十w条数据。里面有很多个商品降价了,现在需要把这些降价的商品找出来。在这几十万条数据里面找出降价的商品这个工作量非常大,速度也会非常慢。所以我们在爬虫的过程中也需要通过其他的技术让我们的需求以更少的时间去实现。下次我们具体分享下如何用技术逻辑手段以更快的时间找到那些降价的商品。
若有收获,就点个赞吧