栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

python爬虫——高级功能

Python 更新时间:发布时间: 百科书网 趣学号
1、解析robots.txt
# section 1
User-agent: BadCrawler
Disallow: /

# section 2
User-agent: *
Disallow: /trap 
Crawl-delay: 5

# section 3
Sitemap: http://example.python-scraping.com/sitemap.xml

 这个 robots.txt 文件中说:对于BadCrawler 这样的代理用户是禁止浏览本站点的。

我们现在使用这个 Python 自带的 robotparser 模块测试一下:

from urllib import robotparser


# 将创建RobotFileParser对象封装成函数,传入文件的链接,返回解析器对象
def get_robots_parser(robots_url):
    rp = robotparser.RobotFileParser()
    rp.set_url(robots_url)
    rp.read()
    print(rp)
    url = 'http://example.python-scraping.com'
    user_agent = 'BadCrawler'
    print('BadCrawler:',rp.can_fetch(user_agent, url))
    user_agent = 'GoodCrawler'
    print('GoodCrawler:',rp.can_fetch(user_agent, url))
    return rp
get_robots_parser('http://example.python-scraping.com/robots.txt')

User-agent: BadCrawler
Disallow: /

User-agent: *
Crawl-delay: 5
Disallow: /trap
BadCrawler: False
GoodCrawler: True

上面测试说明,如果将爬虫程序的 代理用户 设置为: BadCrawler 

由于你访问的目标站点已经警告你了:“我们禁止用户代理为BadCrawler 的用户访问本站点里面的所有网站”。所以,我们用 robotparser 模块创建的对象,通过rp.can_fetch(user_agent, url)函数返回 :False 。

在can_fetch() 函数前面的一堆都是初始化,can_fetch() 函数是在程序里面使用,它的功能:确定指定的用户代理是否允许访问网页。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/295757.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号