分享好友 最新动态首页 最新动态分类 切换频道
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,详情可以看崔庆才的总结

获取授权

最新文章
运动会活动策划书
~  时间一溜烟儿的走了,工作已经告一段落了,前方等待着我们的是新工作目标和挑战,想必现在的你有必要写一写策划书了。是不是无从下笔、没有头绪?下面是我收集整理的运动会活动策划书,仅供参考,欢迎大家阅读。    一、活动前言:
比漫熊漫画,比漫熊漫画安卓最新版,比漫熊漫画下载
比漫熊漫画是一款非常好用的小说漫画软件,比漫熊漫画功能丰富,确实在多个方面为漫画爱好者们提供了优质的阅读体验,用户可以根据类型地区作者等多种方式进行筛选,比漫熊漫画允许用户根据自己的需求切换各种漫画资源源,轻松找到自己喜欢
跨境电商独立站建站平台解析,独立站如何运营?独立站优势
越来越多的人涌入跨境电商这行业,无论是大平台还是独立站,蜂拥而至的小白,新手,各种开车,各种上路,但是大家真的了解独立站这个行业麽?或者说,怎么找到未来自己的第一块根据地呢?那么咱就说说,你只要干独立站,就怎么都绕不开的这
虚拟微博热搜生成器
虚拟微博热搜生成器是一款可以让用户随时登上热门排行榜的APP,当然这是虚假的,微博是不少用户喜欢使用的一款软件,这款APP的界面与微博非常的相似,可以说一模一样,将自己喜欢的内容填充进去就可以打造一个热门排行榜,恶搞一下好友是非
问道加盟
  【市场优势】  1、媒体,网络等多方面的品牌宣传;  2、全国各地设置分支机构及战略合作伙伴,统一的品牌及企业文化导入;  3、全国各地定期举办线下交流会;  4、成为福建游龙网络科技有限公司的战略合作伙伴,共享旗下产品资
这款AI论文写作在线工具助你一臂之力!论文生成不再难
​​创新性强:开启学术研究的新思路时间对于研究者来说无比珍贵,千笔AI论文深知这一点。它通过高效的选题建议生成机制,大大缩短了研究者在选题阶段的时间投入。只需输入关键词、研究领域或基本要求,千笔AI论文就能在短时间内提供多个精
雨人Ghost Win7x86 SP1无精简纯净版
雨人Ghost Win7x86 SP1无精简纯净版_C8.32***************************GHOST版的迅捷 安装版的品质 百分百完整 真正的纯净雨人Ghost Win7x86 SP1无精简纯净版_C8.32 ------智能识别品牌机兼容机,自动激活……****************************
鹤岗网站排名优化,策略与实践,鹤岗seo
鹤岗网站排名优化策略与实践,包括关键词研究、内容优化、链接建设等。通过深入了解用户需求和搜索习惯,选取合适的关键词,提高网站在搜索引擎中的排名。注重网站内容的质量和原创性,定期更新有价值的内容,吸引用户访问和分享。积极寻求
超逼真美女写真生成全攻略,教你用AI轻松制作完美作品!
在社交媒体蓬勃发展的时代,我们似乎每天都被美丽的图片和视频包围。然而,这些令人心动的写真到底是如何生成的呢?是否有一种工具可以帮助我们轻松制作出逼真而富有魅力的美女写真?答案是肯定的!通过画画、拍照、修图,我们可以用AI技术
高档轿车的智能化配置有哪些亮点?
高档轿车的智能化配置亮点众多。比如奔驰纯电 G 级,内饰搭载第 2 代 MBUX 智能人机交互系统,有“数字越野座舱”“实时越野路面影像”功能,可选 MBUX 高端后排娱乐系统,丰富车内娱乐。奥迪 AUDI E 概念车,采用激光雷达路线,配备高级驾
相关文章
推荐文章
发表评论
0评