1. 首页
  2. Python

Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫

“u003Cdivu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1524285391482545c015ac2″ img_width=”1277″ img_height=”853″ alt=”Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E先看几张对比图,分别是官网截图和抓取下来的 txt文档的截图,不算那难看的排版的话,内容是一致的,图片用 url替换了!u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002F1524285411081e23ecde71b” img_width=”927″ img_height=”607″ alt=”Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F15242854109259087ffcb7c” img_width=”1276″ img_height=”143″ alt=”Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E在整个抓取过程中,除了普通的文本以外,还需要处理 3个地方,分别是:代码、图片、视频,因为目前只写到了文本文件,所以直接抓到图片或者视频的地址,标识清楚后写入到 txt,u003Cstrongu003E这里可以在进一步,写到 wordu002Fpdf 或者其他文件,留待以后改进!u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cstyleu003E #pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } u002F*pc 样式*u002F .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: ” “; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https:u002Fu002Fs0.pstatp.comu002Fpgcu002Fv2u002Fpgc_tplu002Fstaticu002Fimageu002Fcommodity_buy_f2b4d1a.png); }u003Cu002Fstyleu003Eu003Cdiv id=”pgc-card” class=”pgc-card”u003E u003Ca href=”https:u002Fu002Fifeeds.taobao.comu002Fcontentu002Fedetail?pid=mm_118561788_16552663_120508679&subPid=mm_45324017_44416218_453860440&itemId=563126041210&source=toutiao&dx=1″ target=”_blank” class=”pgc-card-href”u003E u003Cdiv class=”pgc-cover” style=”background-image:url(https:u002Fu002Fimg.alicdn.comu002Ftfscomu002Fi1u002F1127601388u002FTB1mCCocYArBKNjSZFLXXc_dVXa_!!0-item_pic.jpg)”u003Eu003Cu002Fdivu003E u003Cdiv class=”pgc-content”u003E u003Cdiv class=”pgc-content-title”u003EPython 数据处理 Python编程从入门到实践 核心编程基础教程 网络爬虫入门书籍 python视频编程从入门到精通 程序设计教材人民邮电u003Cu002Fdivu003E u003Cdiv class=”pgc-content-desc”u003Eu003Cu002Fdivu003E u003Cdiv class=”pgc-content-price”u003E¥72.2u003Cu002Fdivu003E u003Cu002Fdivu003E u003Cdiv class=”pgc-card-buy”u003E u003Cdivu003Eu003Ci class=”pgc-icon-buy”u003Eu003Cu002Fiu003Eu003Cu002Fdivu003E u003Cdiv class=”pgc-buy-text”u003E领3元券u003Cu002Fdivu003E u003Cu002Fdivu003E u003Cu002Fau003Eu003Cu002Fdivu003Eu003Cspanu003E话不多说,先来看看整个爬虫过程吧!u003Cu002Fspanu003Eu003Cpu003E目标:廖雪峰官网&mdash;python教程u003Cu002Fpu003Eu003Cpu003E工具:pycharm、python3.6、requests库、time库、lxml库u003Cu002Fpu003Eu003Cpu003E思路:u003Cu002Fpu003Eu003Cpu003E 抓取所有的目录章节 urlu003Cu002Fpu003Eu003Cpu003E 找到 url内教程主体所在的 divu003Cu002Fpu003Eu003Cpu003E 遍历 div下所有标签,文本和代码部分内容直接保存u003Cu002Fpu003Eu003Cpu003E 区分其中的代码、图片、视频 3个内容,分别以文本、url的形式保存并做好标识u003Cu002Fpu003Eu003Cpu003E 加入时间计数,统计总用时u003Cbru003Eu003Cu002Fpu003Eu003Cpu003E大致如上,我们先来抓取所有的章节 url,这里我们用 xpath 来匹配 div,然后循环 div下的所有 a标签的文本和 href属性,这两个部分为章节的名字和 url,当然 url部分需要拼接,加入域名就可以了!u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1524285468399b1e3ef2197″ img_width=”671″ img_height=”190″ alt=”Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫” inline=”0″u003Eu003Cu002Fpu003Eu003Cp class=”pgc-img-caption”u003Eu003Cspanu003Eu003Cu002Fspanu003Eu003Cspanu003EHeader和主页信息,请自行添加哦!u003Cu002Fspanu003Eu003Cbru003Eu003Cu002Fpu003Eu003Cpu003E取到章节信息后,还需要判断是否存在子章节,存在则需要继续取,观察网页后发现子章节所在标签为 a标签的平级 div标签,用 if判断就可以,网页结构如下:u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1524285501633888c5814a3″ img_width=”788″ img_height=”526″ alt=”Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E代码我们这样写u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fpgc-imageu002F1524285529040b21188ee27″ img_width=”685″ img_height=”162″ alt=”Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E其中 get_summary()函数是我自定义的下载函数,代码如下u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F1524285540875c5903a74a6″ img_width=”785″ img_height=”596″ alt=”Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E传入 3个参数:url是开始我们抓到的章节或者子章节的 url,name为章节名,title为子章节名,默认为空,这样做是为了在写入文件时进行判断,大家自行查看就可以 ,注意的是前面说到的 3个地方,文章中的代码部分是在<pre>标签下,和<p>标签一样取出内容即可,图片和视频所在的标签分别做判断,存在则将 url写入文本!u003Cu002Fpu003Eu003Cpu003E最终运行程序结果u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002F1524285567088455b43e7f5″ img_width=”239″ img_height=”240″ alt=”Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F152428556768542ae88c38a” img_width=”1265″ img_height=”622″ alt=”Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E在 txt下,不要选择自动换行,否则,代码部分就不好看了!整个爬虫部分很简单,复杂的部分是处理各种标签及标签下的其他内容,最后写入文件因为不需要排版,反而简单了。u003Cu002Fpu003Eu003Cpu003E欢迎大家来找我一起交流,完善代码!u003Cu002Fpu003Eu003Cpu003Eu003Cbru003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002Fpgc-imageu002F152428565751442bfc49617″ img_width=”180″ img_height=”180″ alt=”Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫” inline=”0″u003Eu003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫

主题测试文章,只做测试使用。发布者:战鹰,转转请注明出处:http://www.cxybcw.com/13326.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code