互联网的数据爆炸式的增长,而利用 Python 爬虫我们可以获取大量有价值的数据。这些数据可以有很多用途,比如:
1.爬取数据,进行市场调研和商业分析
爬取知乎优质答案,筛选各话题下最优质的内容; 抓取房产网站买卖信息,分析房价变化趋势、做不同区域的房价分析;爬取招聘网站职位信息,分析各行业人才需求情况及薪资水平。
2.作为机器学习、数据挖掘的原始数据
比如你要做一个推荐系统,那么你可以去爬取更多维度的数据,做出更好的模型。
3.爬取优质的资源:图片、文本、视频
爬取商品(店铺)评论以及各种图片网站,获得图片资源以及评论文本数据。掌握正确的方法,在短时间内做到能够爬取主流网站的数据,其实非常容易实现。
Python中爬虫有很多的库可以选择:urllib、requests、bs4、scrapy、pyspider 等,建议你从requests+Xpath 开始,requests 负责连接网站,返回网页,Xpath 用于解析网页,便于抽取数据。pythond的学习方式已经有很大大神分享过,但是爬虫最重要的步骤就是实践,只有实战经验才能体现学到了什么程度。比如这里我们requests来爬取豆瓣一个话题的短评数据,爬取过程中应对特殊网站的反爬虫措施是我们必须要学会的,如豆瓣这种限制ip比较的严的网,我们可以通过添加优质隧道代理去解决。代理的选择比较广泛,这里我们直接使用由亿牛云提供的爬虫加强版进行实践,添加代理ip爬取过程如下:
import requests
import random
# 要访问的目标页面
targetUrl = "https://www.douban.com/"
# 要访问的目标HTTPS页面
# targetUrl = "https://www.douban.com/"
# 代理服务器(产品官网 www.16yun.cn)
proxyHost = "t.16yun.cn"
proxyPort = "31111"
# 代理验证信息
proxyUser = "ETFDJY"
proxyPass = "5478987"
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