全文共 1110 字,阅读文本大概需要 2.2 分钟。
小声说下,微信改版看官记得将
挑战算法与程序设计
设置星标公众号或者置顶公众号呀!
爬虫是这段时间最为火的一种方向了,但是爬虫又是那种感觉很高大上的东西,今天周一不讲算法了分享一下什么是爬虫已经爬虫的几种使用方式。
预告一下哟,明天手把手教如何自己写一个爬取豆瓣 TOP250 电影的一个小爬虫。记得看哟!
正文
爬虫 (网络爬虫),大家可以理解为在网络上爬行的一种蜘蛛,互联网就像一张大网,爬虫就是在这张网上爬来爬去的蜘蛛。如果爬虫遇到资源,就会将资源抓取下来。至于抓取什么资源,这个由用户控制。
例如,爬虫抓取了一个网页,在这个网中发现了一条道路,也就是指向网页的超链接,它就可以爬到另一张网上获取数据。这样,整个连在一起的大网对这只蜘蛛来说触手可及,分分钟爬下来不是事儿。
Python 的网络爬取方式有很多种,现在就介绍几种比较常用的几种。
1.基本方法
Python 中最基本的网络爬取几行代码就可以实现,只需使用 urllib 模块中的 request 即可。这两个函数是在网络编程中已经有相关实现,代码如下:
结果可以输出许多带 html 样式的文本,大部分都是无用的信息。这种方式虽然非常简单,但抓取到的信息没有经过加工处理,所以没有多大用处。
2 .使用代理服务器
为什么要使用代理服务器,当前很多网站都有反爬虫机制,一旦发现某个 IP 在一定时间内请求次数过多或请求频率太高,就可能将这个 IP 标记为恶意 IP ,从而限制这个 IP 的访问,或者将这个 IP 加入黑名单,使之不能继续访问该网站。这时我们需要使用代理服务器,通过使用不同的代理服务器继续抓取需要的信息。
示例代码如下:
和基本方法一样,这样的爬取信息没有经过处理,得到的结果也没有什么多大的用处。需要再加工才能进一步体现价值。
3.cookie 处理
对于安全级别稍微高一点的网站,使用前两个方法都是无法爬取数据。这些网站需要再发送 URL 请求是提供 cookie 信息,否则无法请求成功
示例代码如下:
当然,这也是一种简单的方式,还可以扩展成更复杂的模式
4.伪装成浏览器
当前很多网站都有反爬虫机制,对于爬虫请求会一律拒绝。
程序怎样区分一个请求是正常请求还是爬虫程序发出的请求呢?程序通过判断发送请求中是否有浏览器信息判断一个请求是否为正常请求。当访问有反爬虫机制的网站时,我们在请求中设置浏览器信息 (伪装成浏览器),通过修改 http 包中的 header 实现。
示例代码片段如下:
预告明天手把手教你写爬虫哟
推荐阅读:
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试