Python怎么用requests-html爬取网页


本篇内容介绍了“Python怎么用requests-html爬取网页”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等。在网上玩爬虫的文章通常都是介绍 BeautifulSoup 这个库,我平常也是常用这个库,最近用 Xpath 用得比较多,使用 BeautifulSoup 就不大习惯,很久之前就知道 Reitz 大神出了一个叫 Requests-HTML 的库,一直没有兴趣看,这回可算歹着机会用一下了。使用pip install requests-html安装,上手和 Reitz 的其他库一样,轻松简单:这个库是在 requests 库上实现的,r 得到的结果是 Response 对象下面的一个子类,多个一个html的属性。所以 requests 库的响应对象可以进行什么操作,这个 r 也都可以。如果需要解析网页,直接获取响应对象的 html 属性:不得不膜拜 Reitz 大神太会组装技术了。实际上 HTMLSession 是继承自 requests.Session 这个核心类,然后将 requests.Session 类里的 requests 方法改写,返回自己的一个 HTMLResponse 对象,这个类又是继承自 requests.Response,只免费云主机域名是多加了一个_from_response的方法来构造实例:之后在 HTMLResponse 里定义属性方法 html,就可以通过 html 属性访问了,实现也就是组装 PyQuery 来干。核心的解析类也大多是使用 PyQuery 和 lxml 来做解析,简化了名称,挺讨巧的。元素定位可以选择两种方式:css选择器xpath方法名非常简单,符合 Python 优雅的风格,这里不妨对这两种方式简单的说明:标签名 h2id 使用#id表示class 使用.class_name表示谓语表示:h2[prop=value]路径// 或者 /标签名谓语 [@prop=value]轴定位名称::元素名[谓语]定位到元素以后势必要获取元素里面的内容和属性相关数据,获取文本:获取元素的属性:还可以通过模式来匹配对应的内容:这个功能看起来比较鸡肋,可以深入研究优化一下,说不定能在 github 上混个提交。除了一些基础操作,这个库还提供了一些人性化的操作。比如一键获取网页的所有超链接,这对于整站爬虫应该是个福音,URL 管理比较方便:内容页面通常都是分页的,一次抓取不了太多,这个库可以获取分页信息:结果如下:通过迭代器实现了智能发现分页,这个迭代器里面会用一个叫_next的方法,贴一段源码感受下:通过查找 a 标签里面是否含有指定的文本来判断是不是有下一页,通常我们的下一页都会通过下一页或者加载更多来引导,他就是利用这个标志来进行判断。默认的以列表形式存在全局:['next', 'more', 'older']。我个人认为这种方式非常不灵活,几乎没有扩展性。感兴趣的可以往 github 上提交代码优化。也许是考虑到了现在 js 的一些异步加载,这个库支持 js 运行时,官方说明如下:Reloads the response in Chromium, and replaces HTML content
with an updated version, with JavaScript executed.使用非常简单,直接调用以下方法:“Python怎么用requests-html爬取网页”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!

相关推荐: PHP如何实现排序功能

本篇内容主要讲解“PHP如何实现排序功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP如何实现排序功能”吧!核心问题: 1.怎么链接数据库呢?解析:链接数据库,在自己的电脑本地地址上localhost。数据库…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/22 09:33
下一篇 03/22 09:33

相关推荐