Python网络爬虫与信息提取(二):网络爬虫之规则

Requests库的7个主要方法

Python网络爬虫与信息提取(二):网络爬虫之规则

Requests库的get()方法

获得一个网页最简单的一行代码就是 r = requests.get(url)

Python网络爬虫与信息提取(二):网络爬虫之规则

Python网络爬虫与信息提取(二):网络爬虫之规则

网络爬虫的尺寸

Python网络爬虫与信息提取(二):网络爬虫之规则

 

网络爬虫带来的问题

骚扰问题

          对于一个网站来讲,网络爬虫就像骚扰电话一样,可以对这个网站带来很致命的骚扰功能

Python网络爬虫与信息提取(二):网络爬虫之规则

网络爬虫的法律风险

        服务器上的数据有产权归属

        网络爬虫获取数据后牟利将带来法律风险

        曾经有法院判处网络爬虫赔偿服务器网站巨额费用

网络爬虫泄露隐私

         网络爬虫可能具备突破简单访问控制的能力,获得被保护数据从而泄露个人隐私


网络爬虫的限制

       在实际的使用中一些较大的网站都对网络爬虫有相关的限制。在整个Internet上,也将网络爬虫作为一个可规范的功能来看待

对于一般的服务器来讲,可以用2种方式限制网络爬虫:来源审查和发布公告

来源审查 

        如果服务器/网站的所有者有一定的技术能力,可以通过来源审查来限制网络爬虫

Python网络爬虫与信息提取(二):网络爬虫之规则

       在进行浏览器访问的时候,不论是浏览器还是访问的软件,都会把它自己设定一个标识,放在User-Agent里。对网站服务器,它判断你HTT[的协议头,如果的User-Agent字段,不是预定的浏览器,那很可能就是一个爬虫 

发布公告

Python网络爬虫与信息提取(二):网络爬虫之规则

       像一个告示牌,告诉所有的爬虫,网站上哪部分内容你可以爬取,那部分你不可以爬取。

       但是是否遵守就要由网络爬虫自身来决定了


Robots协议

       robots协议一定是放在网站的根目录下,并不是所有的网站都有robots协议(如教育部的网站),没有robots协议的网站默认允许所有爬虫无限制地爬取其页面内容

Python网络爬虫与信息提取(二):网络爬虫之规则

Python网络爬虫与信息提取(二):网络爬虫之规则

 

 

Python网络爬虫与信息提取(二):网络爬虫之规则

 

Requests库网络爬虫实战

①京东页面商品的爬取

爬取页面:https://item.jd.com/2967929.html     (一款手机)

Python网络爬虫与信息提取(二):网络爬虫之规则

状态码是200,说明返回的信息正确,并且获得了这个链接相应的内容

编码是gdk,说明从http的头部分已经可以解析出这个页面的编码信息,说明京东的网站提供了页面信息的相关编码。

 

import requests
url = 'https://item.jd.com/2967929.html'
try:
	r = requests.get(url)
	r.raise_for_status()
	r.encoding = r.apparent_encoding
	print(r.text[:1000])
except:
	print('爬取失败')

raise_for_status()函数在返回的代码如果是200的情况下是不产生异常的,否则会产生异常。

捕捉异常可以使用try/except语句。

  • try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
  • 如果你不想在异常发生时结束你的程序,只需在try里捕获它。

②亚马逊商品页面的爬取

爬取页面:https://www.amazon.cn/gp/product/B01M8L5Z3Y