专栏名称: 开发者阿橙
致力于成为国内最好的Python开发者学习交流平台,这里有关于Python的国内外最新消息,每日推送有趣有料的技术干货和社区动态。 官方网站:www.python-cn.com
目录
相关文章推荐
Python爱好者社区  ·  月薪3万35岁脑干出血程序员:ICU躺了28 ... ·  19 小时前  
Python爱好者社区  ·  务必立即拿下软考证(政策红利) ·  昨天  
Python爱好者社区  ·  软考,yyds ·  19 小时前  
Python爱好者社区  ·  公司Rust团队全员被裁,只因把服务写得「太 ... ·  2 天前  
Python爱好者社区  ·  强的离谱!CNN,yyds ·  3 天前  
51好读  ›  专栏  ›  开发者阿橙

Python爬虫抓取收集考试大纲

开发者阿橙  · 公众号  · Python  · 2017-03-20 22:33

正文

请到「今天看啥」查看全文


今天做了个小玩意,但觉得挺有意思的,分享给大家。主要是这样的,因为帮妹子寻找考试资料,发现同一本书不同的章节分别在不同的链接中,复制起来实在要命,所以就在想能不能用爬虫实现。下图是我们要爬取得页面,注意看下面叫讲义的表格:

首先结合Request和BeautifulSoup来对这个主页进行处理,提取不同章节的href。在这里需要注意,我们的页面是html类型(看网址结尾)。BeautifulSoup中,网页解析器要采用lxml的话,会有半截页面解析不出来。这里使用html5lib解析器。

页面解析出来后,发现解析内容和页面的page source一样,亦即使没有采用js加载内容。通过Inspect定位链接地址,很轻易能找到以下内容,发现所有的章节都在标签为td,分类(class)为lianjie或者lianjielanse里面,章节link的在page source中的位置如图:

这个时候可以通过Beautiful里面的find_all来将符合条件的链接找出来。但同时我们看到两个class其实是有共同点的(前面都是lianjie),这样我们可以将find_all结合正则表达式来减轻我们的工作,详细说明可以看这里的搜索文档树章节。

注意,网址所列出的课程章节是有重复(时间上有更新)的,我这里省方便就没有考虑这个问题了。另外,章节表格最右下角有个空格,实际也是有自己的href的,但既然主页将它隐藏了,那么我们在挑选的时候,也将其排除。







请到「今天看啥」查看全文