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