分享好友 最新动态首页 最新动态分类 切换频道
python爬取下载链接的文件,python爬取网页详细教程
2024-12-26 13:40

原文地址:Python 爬虫 简单实现 (爬取下载链接) - 简书

python爬取下载链接的文件,python爬取网页详细教程

项目地址:https://github.com/Kulbear/All-IT-eBooks-Spider


这几日和朋友搜索东西的时候无意间发现了一个国外的存有大量PDF格式电子书的网站。其实我相当奇怪在国外版权管控如此严的环境下这个网站是如何拿到这么多电子书的,而且全是正版样式的PDF,目录索引一应俱全,没有任何影印和扫描的版本c加加和python哪个值得学。

今天要做的事情就是爬取All IT eBooks这个网站上面PDF的下载链接了。

准备工作

  • 安装Python 3.5.X

  • 或者选择 Anaconda 下载页

这个项目(姑且叫项目)的结构十分简单,要爬取的网站结构设计也十分清晰,所以我们不需要用任何第三方库

分析网页代码并提取

其实这个简单的爬虫需要做的事情仅仅是爬取目标网页的源代码(一般是HTML,提取自己需要的有效信息,再做进一步使用。

点击每本书或者标题以后,会进入到每本书的详细资料页面,并且有一个十分明显的Download PDF的按钮(这里我就不截图了)。

比如某本书详细页面的链接(不在上图中,找了一本链接比较短的书
http://www.allitebooks.com/big-data/

首先我们要拿到每个书detail页面的链接,然后通过这个链接进入到具体的页面,再找寻下载的链接。

多检查几个链接我们可以发现首页上的每本书详细页面的链接很容易找到,每本书的内容都是一个article的node里所包含的,例如

很容易就可以找到这本书的链接在第一层div的第一个子node上

仔细观察整个网页源码后发现,唯独这个带有书detail页链接的tag里有这条

那么现在就很简单了,我们有以下几个选择来提取这个链接

  1. BeautifulSoup
  2. 正则表达式(Regular Expression
  3. 其他…

BeautifulSoup这里不过多做叙述,简单来说,这个库可以帮你很好的分解HTML的DOM结构,而正则表达式则是Ultimate Solution,可以匹配任何符合条件的字符串,这里我们选用正则表达式(我也只学过皮毛,不过解决这次的问题只需要5分钟入门级就可以,具体正则教程可以参见网上的资源,比如 这里。

先推荐一个在线检测正则的网站 Regex101

Regex101.png

匹配刚才那个网页链接所需要的正则表达式如上,现在我们来开始Python代码的部分

 
   

以上代码能够将网页源码解码并返回我们需要的url_list, 其中re.findall(…)这一部分的作用是,找到doc中所有符合BOOK_LINK_PATTERN的部分并return一个list出来,转换为set只是为了去重,又在之后重新转回为了list为了方便遍历。

仅仅抓取第一页显然不够,所以我们加入对页码的遍历,如下

 
   

这里并没有对可能出现的Error做处理,我们稍后补上。

至此,我们的程序已经可以抓取这个网站所有页面里的书detail页面的链接了(理论上

具体到每个页面以后的工作变得十分简单,通过访问每本书的detail页面,检查源代码,可以很轻松的提取出页面里Download PDF按钮对应的下载链接。

其中

 
   

就是我们需要的部分了。

故技重施,使用如下的正则表达式匹配这一段HTML代码

这段代码就不分解放出了,自己动手吧(源码和Github链接在最后)。

(其实是因为我是写完了整个代码以后才返回来写这个文章,现在懒得拆了……

小结

当然,这个简单的程序只是一个最最基本的小爬虫。离枝繁叶茂真正功能的爬虫还差很多。多数网站都有多少不等的反爬虫机制,比如单位时间内单一IP的方位次数限制等等。通常网站会有一个robots.txt文件,规定了针对爬虫的要求,比如能不能使用爬虫。这个文件一般在www.hostname.com/robots.txt这个格式的网址可以直接查看,比如我们这次爬取的网站

 
   

应对不同网站的反爬虫机制,我们可以选择增加Header,随机Header,随机IP等很多方法来绕开,当你大量或者高频爬取一些网站的同时,如果可以,别忘了给网站拥有者做一些贡献(比如之前爬取Wiki的时候,捐赠了5刀…,以缓解网站作者维持服务器的压力。

源码

Github: https://github.com/JiYangE/All-IT-eBooks-Spider
请尽情的鞭笞Star我吧

趁着午休的一小时赶工出来的代码,也没备注重构修改过,结构略乱,单一指责根本没有,我不管,能打仗的兵就是好兵,各位凑活一下看,逻辑非常简单

文件1 crawler.py

 
   

文件2 conf.py

 
   

运行结果文件 result.txt 内容

 
   
再废话两句

Python的功能日益强大起来,有很多现成的爬虫框架可以学习,在熟练网络协议和抓取等基础的网络知识以后,也可以试试学习一些较为完善的框架,比如Scrapy,详情可以看崔庆才的总结

获取授权

最新文章
AI搞定LOGO设计效果惊艳,雷军200万设计小米logo钱花早了
小米在三年前发布了全新的Logo设计,这一变革是由日本国际著名设计师原研哉亲自操刀,历时3年才完稿,据说耗资200万人民币。从图中可以看到,新LOGO的色调和标志性的“MI”字样保持不变,只是轮廓从直角变为了圆角。雷军曾在发布会上表示,
2024-25雪季马鬃山滑雪交通攻略大全(自驾+公交+大巴)
  内蒙古科技馆官网门票预约  一、官网预约流程  第一步:进入内蒙古科技馆官网  第二步:选择“预约服务”,点击“活动预约”;  二、微信预约流程  特效影院(球幕影院、巨幕影院、4D影院)、科学实验课、展厅教育活动、科学苑
2024-12-11徐州SEO优化:实战经验下的深度剖析与策略建议
在数字营销领域深耕多年,我深知网站SEO关键词优化对于提升在线可见性的重要性。从无数次的策略调整与效果追踪中,我总结出了一套行之有效的关键词优化方法,旨在帮助企业在激烈的竞争中脱颖而出。一、理解关键词优化的核心在SEO的征途中,
Hitachi Vantara调查报告解析中国企业采用AI的关键挑战
【天极网企业频道】HitachiVantara调查发现,至2026年,企业对数据的需求将增长两倍,凸显出数据基础架构在推动AI成功中的关键作用,以及企业当下在数据治理、安全性和可持续发展方面仍存在差距。 2024年12月11日,北京–日立集团(TSE:6501
2024蓝奏云破解软件合集资料(蓝奏云破解网)
1、软件库合集软件资料链接20222、蓝奏云探索V1000免费版蓝奏云探索V1000免费版功能简介3、蓝奏云LSP软件合集是合法资料吗?1、年软件库合集软件资料网址 软件库 软件类型:安卓APP 软件介绍:软件库蓝奏云是一款好用的软件免费下载软件。2
2025国考云南出入境边防检查总站笔试成绩公布排名吗?(版纳华图)
2025国考云南出入境边防检查总站笔试成绩公布排名吗?(版纳华图)2025年国考相关信息汇总(公告|职位表|报名入口|报考指南)2025国考笔试成绩查询入口2025国考历年进面分数线2025国考结构化面试2025国考无领导面试  2025年国家公务员笔试
age动漫 ios下载
age动漫iosAPP所有资源都是完全免费的,用户无需花费任何费用就能畅享海量动漫。这大大降低了用户的观看成本,提高了用户的使用体验。涵盖了各种类型的动漫作品,无论是热门的还是冷门的,都能在这里找到。这为用户提供了更多的选择空间,
337期[辉煌小哥]排列五单双精准预测
337期辉煌小哥排列五单双精准预测:双双双单单,双单双双单,单双单单双,单单双单单,双单双单双336期辉煌小哥排列五单双精准预测:单双单单单,双单单双单,单单双单双,双双单单双,单单双双单出:24967(双双单双单)335期辉煌小哥排列五单双精准预
21年四川小伙突破顶尖防火墙,美国全球通缉,悬赏1000万只求线索
近日,一则震惊国内外的消息引发了广泛关注,美国财政部宣布对四川无声信息技术公司及其员工关天峰实施制裁,并悬赏1000万美元征集关天峰的相关信息。这一举动不仅让这家四川的网络安全公司瞬间成为焦点,也让关天峰这个名字在国内外迅速走
AI时代,三棵树×百度商家智能体重塑AI营销新生态
导语: 在许多人的固有认知中,孤独症的世界是封闭和单调的,而透过他们的画笔,却能看见一个无比多彩、纯粹、美好的世界。据统计,中国有数百万的孤独症儿童,他们就像天上的星星,生活在自己的世界里,用画笔勾勒出一片天地。有许多孤独症儿童家
相关文章
推荐文章
发表评论
0评