获取文档的url_10行python爬虫代码爬取新浪所有文档,从此再也不怕没有资料了...

后台有很多粉丝希望分享一些关于爬虫的知识,因为不管是做数据分析还是数据挖掘,其核心都是数据,实际生产活动中,很大一部分数据是来源于爬虫。

今天我们先来学习一下爬虫入门基础:requests和BeautifulSoup。这两大利器构成了我们爬虫的主要要素,很多深入的应用都是在这些基础之上的,下面我们就结合一个真实案例来进行学习。

今天我们要爬取的是新浪爱问共享资料,这个网站上有很多免费的文档,尤其是中小学生学习资料,是个不错的来源。

67d580c8de543a048bd00a96ae94c2ca.png

首先搜索我们需要的文档,比如:我想要关于初三物理的文档,搜索结果如下:

e79e5916ebb079953feb3728196107e0.png

我们可以看到,每页有30个文档,并且总共有20页,这么多作业肯定狗亲戚家小朋友做的了。

那么,我们现在就来构思我们的爬虫,首先,我们要获取每篇文档的链接,接着再进入文档,爬取详细的内容,先来查看一下网页结构:

4f02418aa82de9eee3475c9194f0241e.png

可以看到,30个文档模块整整齐齐的摆放在我们面前。那么首先就要来解析这个搜索目录了,先来看代码:

ab1ad54d826528cc6ff5edc3055a23d5.png

我们用到了requests这个库,这个库主要是用来请求url,并且获取这个url中的内容:

06f2d7444c37f76f37455070b791af3a.png

我分别打印了r和r.text,第一个返回的是200,表示网页请求成果,之后的是网页的详细信息。拿到网页之后该怎么办呢,下一步就是解析网页的内容,并且获取我们想要的信息,r.text返回的是一个文本,计算机并不认识,所以我们需要先把它整理成结构化的网页文档,这里就需要BeautifulSoup这个包了,老规矩先看代码:

b5c9e04b6103e29e1aff2cc1b651d7cc.png

首先把request返回的值使用html.parer进行解析,其次通过查找我们发现,所有的链接都存在于a标签当中,并且这些标签的class属性都是sts_8,所以我们就拿到了结果:

8826ea9fdc39a4f7ee82fe9d6a2988e5.png

所有的结果都拿到了,但是这并不是我们的最终结果,我们想要的仅仅是href属性的值,我们发现,所有的结果都保存在一个列表当中,所以我们还有一个办法:

b36a158fe7a80ec57c285ccc4c6d1f29.png

通过遍历列表的中的值,获取每个值的href属性,看下结果:

234870382d72358126b845f58b912de4.png

这正是我们想要的文章链接,所以拿到这些链接之后,我们就可以顺理成章的去获取具体文档内容了,剩下的交给大家自己练习了!按照这个思路,我们几乎可以爬取新浪所有文档,赶紧试试吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值