学Python,想必大家都是从爬虫开始的吧。毕竟网上类似的资源很丰富,开源项目也非常多。
Python学习网络爬虫主要分3个大的版块:抓取,分析,存储
当我们在浏览器中输入一个url后回车,后台会发生什么?
简单来说这段过程发生了以下四个步骤:
查找域名对应的IP地址。
向IP对应的服务器发送请求。
服务器响应请求,发回网页内容。
浏览器解析网页内容。
网络爬虫要做的,简单来说,就是实现浏览器的功能。通过指定url,直接返回给用户所需要的数据,而不需要一步步人工去操纵浏览器获取。
抓取这一步,你要明确要得到的内容是什么?是HTML源码,还是Json格式的字符串等。将得到内容逐一解析就好。具体的如何解析,以及如何处理数据,文章后面提供了非常详细的且功能强大的开源库列表。
当然了,爬去别人家的数据,很有可能会遭遇反爬虫机制的,怎么办?使用代理。
适用情况:限制IP地址情况,也可解决由于“频繁点击”而需要输入验证码登陆的情况。
这种情况最好的办法就是维护一个代理IP池,网上有很多免费的代理IP,良莠不齐,可以通过筛选找到能用的。
对于“频繁点击”的情况,我们还可以通过限制爬虫访问网站的频率来避免被网站禁掉。
有些网站会检查你是不是真的浏览器访问,还是机器自动访问的。这种情况,加上User-Agent,表明你是浏览器访问即可。有时还会检查是否带Referer信息还会检查你的Referer是否合法,一般再加上Referer。也就是伪装成浏览器,或者反“反盗链”。
对于网站有验证码的情况,我们有三种办法: