urllib库之四大属性(parse、robotsparser)

在urllib库里还提供了parse,它定义了URL的标准接口:https、http、ftp、mms等,实现URL各部分的抽取、合并以及连接转换

一、parse模块有以下方法:返回ParseResult

1、urlparse()

结果如下:

URL:"https://www.baidu.com/index.html;user?id=5#comment",而一个标准连接格式:scheme://netloc/path;params?query#fragment  
协议://域名/路径;参数?查询条件#锚点   ://前面就是scheme代表协议;第一个/符合前表示netloc表示域名  ;前表示路径    ?号前表示参数    #号前表示查询条件   #后表示锚点   一个标准的URL都会符合这个规则。利用urlparse()方法可将URL拆分开

完整的API:urlparse(urlstring, scheme=' ' ,allow_fragments=True )    urlstring表示带解析的URL   scheme表示默认协议  allow_fragment:表示是否忽略fragment(锚点)

1.1假设链接没有带协议,则会将scheme设置作为默认协议

    

1.2假设链接带有协议,scheme设有另外的协议,则会根据链接的协议

1.3allow_fragments:是否忽略fragment(锚点),若忽略它则会解析为path、parameters或query的一部分,而fragment部分则为空

        

1.4假设URL中不包含params和query ,fragment会被解析为path的一部分

   

1.5  urlsplit():它与urlparse()相似,它不在单独解析params这部分,且只返回5个结果并把params合并到path中

1.6  urlunparse():它对立于urlparse(),它接收参数是一个可跌打对象,且长度必须为6,否则会抛出参数数量不足或过多的异常。它用于构造URL

1.7  urlunsplist()  和1.6相似,但长度必须为5 ,不够或超过都会报错。

2.1urlencode(),它在构造GET请求参数的时候非常有用

2.2parse_qs():反序列,它可将GET参数转为字典类型,按书上描述的结果是:{'name':['germey'] , 'age':[22]},我运行的结果如下  其中parse_qsl()也一样  只不过parse_qsl()返回元组组成的列表

2.3quote()和unquote(),quote()方法可以将内容转化为URL编码的格式,而unquote()方法则是反过来

三、Robots协议,Robots协议也叫爬虫协议,用来告诉爬虫和搜索引擎那些页面不能抓取,那些能抓取,它通常有一个叫robots.txt文件本,一搬再网站点的根目录下

样式:User-agent:*     描述搜索爬虫名称

            Disallow:/        不允许抓取的目录

           Allow:/public/   允许爬取public目录

3.1使用robotparser解析robots判断爬虫是否有权限爬取这个网页

   rp=urllib.robotparser.RobotFileParser(url=' ')   

rp.set_url():用来设置robots.txt文件的连接,若在声明RobotFileParser对象时传入链接,则不需要使用该方法

rp.read()   :用来解析robots文件,并进行分析

rp.parse() :用来解析robots.txt文件,它会按照robots.txt的语法规则来分析内容

rp.can_fetch():判断网页是否可被抓取

rp.mtime():返回上次抓取和分析robots时间

rp.modified():将当前时间设置为上次抓取和分析robots.txt时间

反正我使用rp.can_fetch()返回的全部是Flase

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值