爬虫初级——山脚0关

初学爬虫,一点笔记。。。。。本帖原创,转载请注明处处

  •  爬虫工作原理

利用程序在网上拿到有价值的数据,当我们与浏览器信息交互式原理如下:

当你决定去某个网页后,首先,爬虫可以模拟浏览器去向服务器发出请求;其次,等服务器响应后,爬虫程序还可以代替浏览器帮我们解析数据;接着,爬虫可以根据我们设定的规则批量提取相关数据,而不需要我们去手动提取;最后,爬虫可以批量地把数据存储到本地。

四个步骤:1 获取数据  2 解析数据  3 提取数据  4 存储数据

  • 获取数据

Python里一个强大的库: requests   Windows电脑里命令提示符(cmd),输入pip install requests 即可。

函数:requests .get('URL')  具体运用如下:仔细看注释

import requests
#引入requests库
res = requests.get('URL')
#requests.get是在调用requests库中的get()方法,它向服务器发送了一个请求,括号里的参数是你需要的数据所在的网址,然后服务器对请求作出了响应。我们把这个响应返回的结果赋值在变量res上。

Response对象的常用属性

属性作用
response.ststus_code检查请求是否成功
response.contend把对象转换成二进制
response.text把对象转换成字符串
response.encoding定义编码

用法 :print(变量名.status_code(或comtend/text/encoding))

常见响应状态码即查即用

示例:详细看注释

import requests
#引用requests库
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')
#下载《三国演义》第一回,我们得到一个对象,它被命名为res
novel=res.text
#把Response对象的内容以字符串的形式返回
k = open('《三国演义》.txt','a+')
#创建一个名为《三国演义》的txt文档,指针放在文件末尾,追加内容,也可用'w'
k.write(novel)
#写进文件中     
k.close()
#关闭文档

关于文件操作后续补充

 

 

  • 爬虫伦理

通常情况下,服务器不太会在意小爬虫,但是,服务器会拒绝频率很高的大型爬虫和恶意爬虫,因为这会给服务器带来极大的压力或伤害。服务器将爬取条件会写在Robots协议。

Robots协议是互联网爬虫的一项公认的道德规范,它的全称是“网络爬虫排除标准”(Robots exclusion protocol),这个协议用来告诉爬虫,哪些页面是可以抓取的,哪些不可以。

如何查看网站的robots协议呢,很简单,在网站的域名后加上/robots.txt就可以了。以淘宝为例

User-agent:  Baiduspider #百度爬虫
Allow:  /article #允许访问 /article.htm
Allow:  /oshtml #允许访问 /oshtml.htm
Allow:  /ershou #允许访问 /ershou.htm
Allow: /$ #允许访问根目录,即淘宝主页
Disallow:  /product/ #禁止访问/product/
Disallow:  / #禁止访问除 Allow 规定页面之外的其他所有页面
​
User-Agent:  Googlebot #谷歌爬虫
Allow:  /article
Allow:  /oshtml
Allow:  /product #允许访问/product/
Allow:  /spu
Allow:  /dianpu
Allow:  /oversea
Allow:  /list
Allow:  /ershou
Allow: /$
Disallow:  / #禁止访问除 Allow 规定页面之外的其他所有页面
​
…… # 文件太长,省略了对其它爬虫的规定,想看全文的话,点击上面的链接
​
User-Agent:  * #其他爬虫
Disallow:  / #禁止访问所有页面

协议里最常出现的英文是AllowDisallowAllow代表可以被访问,Disallow代表禁止被访问。而且有趣的是,淘宝限制了百度对产品页面的爬虫,却允许谷歌访问。

当准备爬取网站资源是,首先查看协议是否被允许,同时需要限制爬虫速度,避免服务器压力过大

一图总结:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值