新浪微博的数据可是非常有价值的,你可以拿来数据分析、拿来做网站、甚至是*。不过很多人由于技术限制,想要使用的时候只能使用复制粘贴这样的笨方法。没关系,现在就教大家如何批量爬取微博的数据,大大加快数据迁移速度!
1、需要先获取cookie,
2、运行爬虫
运行爬虫之前先简单的进行分析,微博这样的网站反爬机制都比较严的,最近的风控更严,特别是对IP的需求更高,所以在爬取数据之前需要加上代理池。爬虫代理的使用之前分享过很多,这里就简单的说下,根据自己的程序设计选择使用api提取模式自己管理IP或者使用隧道转发直接进行数据爬取都可以。这里我们选择使用后者,隧道转发的更适合业务启动和上手也快。实现过程如下:
代码语言:javascript复制#! -*- encoding:utf-8 -*-
import requests
import random
# 要访问的目标页面
targetUrl = "weibo.com/?sudaref=www.baidu.com"
# 要访问的目标HTTPS页面
# targetUrl = "weibo.com/?sudaref=www.baidu.comp"
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "16LDJLCD"
proxyPass = "254565"
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