Datehoer的博客
我本将心向明月,奈何明月照沟渠
Datehoer的博客

当前位置:主页 > 技术分享 > python 爬虫入门之requests-html

python 爬虫入门之requests-html

浏览: 作者:Datehoer 发布日期:2020-11-14 21:25:36 来源: 原创
其实本来应该早一点发的,但是我用织梦后台编辑文章的时候,不小心点了网页的x号,于是乎,内容白写了,然后我又开始重新写了。requests库,是一个第三方的Python库,用来模拟发送HTTP请求。它通常用于爬虫或接口的测试。与urllib等其他的系统库相比,虽然他们的功能相似,但是requests相对来说更简单、方便和高效。
首先我们先把这个requests-html安装一下
进入运行框然后输入

pip3 install requests-html
即可安装成功,在之后我们把该库导入即可
import requests_html
接下来准备了一个小例子给大家,本来其实每句话都有分析的,但是由于是第二遍写,就不那么麻烦了
import requests_html                  #导入requests-html库
session = requests_html.HTMLSession()                     #创建一个session的变量,用来取代requests_html.HTMLSession()要不之后字太多而纸样只需要操作session
res = session.get("https://zjzdmc.top/")             #get一下网址,这里我们用博客主页做演示
res.encoding = "utf-8"                            #获取的编码格式
print(res.text)              #输出获取的内容
最简单的一种方法。
之后我们来介绍一下其他的方法,也就是requests-html的进阶。

获取链接:

print(res.html.absolute_links)
这个就是获取链接的方式,绝对路径,这样就会直接获取完整的链接
'https://zjzdmc.top/wdsj/'
而如果直接获取链接呢?

print(res.html.links)
'/wdsj/2020/1111/42.html'
则会出现上面这样不完整的链接,各有各的用处吧,不过大多数还是要加一下绝对路径的链接的。

XPATH:

这个的抓取我们看一下动图

获取的内容为/html/body/article这个

print(res.html.xpath("/html/body/article", first=True).text)
这个就是把该 xpath代表的内容输出出来的代码。
而xpath有4个参数:


  • selector,要用的XPATH选择器;
  • clean,布尔值,如果为真会忽略HTML中style和script标签造成的影响(原文是sanitize,大概这么理解);
  • first,布尔值,如果为真会返回第一个元素,否则会返回满足条件的元素列表;
  • _encoding,编码格式。
然后我们还有html+css获取的方法

html+css:

还是以博客的主页为例,我们要获取头部标签内的内容,而我们div里有一个class为header的标签,我们就获取他的内容吧。
hc = res.html.find("div.header", first=True)
print(hc.text)
只要写出该内容的标签传递关系即可获取内容
主页
技术分享
日常学习
法制专栏
我的世界
关于我
检索标题
智能模糊
搜索
&#13; (function(){&#13; var bp = document.createElement('script');&#13; var curProtocol = window.location.protocol.split(':')[0];&#13; if (curProtocol === 'https'){&#13; bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';&#13; }&#13; else{&#13; bp.src = 'http://push.zhanzhang.baidu.com/push.js';&#13; }&#13; var s = document.getElementsByTagName("script")[0];&#13; s.parentNode.insertBefore(bp, s);&#13; })();&#13; &#13; (function(){&#13; var src = "https://jspassport.ssl.qhimg.com/11.0.1.js?d182b3f28525f2db83acfaaf6e696dba";&#13; document.write('<script src="' + src + '" id="sozz"><\/script>');&#13; })();&#13;
这就是具体的获取内容了,相应的,具体你需要什么内容需要通过属性来进行判断。
print(hc.search("{}")[0])
比如说这个,这个就是查询内容了,搜索之前获取的div.header里有没有以主为开头的内容,然后返回获取的值。再比如说还有许多的方法,就不一一在此列出了,其余的我们且听下回分晓!
如果有什么问题可以发送到下面的评论区,我会在看到的时候进行解答。



版权:本文由Datehoer原创,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接本文链接:https://zjzdmc.top/jsfx/47.html。

文章推荐

热门标签

返回顶部
下面为相关推荐
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!