爬虫作业3

  • 前情回顾

上一节课的作业中,爬取的页面网址与主要的元素基本已确定好。

面经基本信息
#面试的基本信息
<a href="">
       ![](/v3/images/portrait/i_header02.png)#头像
</a>
<p class="f_14 grey_99 dd_bot">面试百度的<a target="_blank" ka="interview-name1" href="/interview/3626/" class="green">数据分析实习生</a>.北京</p>#面试公司、职位、地点
<a target="_blank" ka="interview-result-1" href="/gsmsh8189347.html">
       <span class="feel_fail">面试未通过</span> #面试结果
</a>
<article>
      <a href="/gsmsh8189347.html?ka=interview-detail1-1" ka="interview-detail1-1" target="_blank">
       <h3 class="question_title">#面经标题
                    面试官很亲切 数据分析岗位更愿意招收性格内向的员工。</h3>
        <p class="question_content">#面经内容
                        面试官很亲切,虽然因为开会延迟了面试时间。岗位主要是数据分析...</p>
        </a>
  </article>
<div class="rdrc_center">#面试难度测评
      <div>
           ![](/v3/images/star/i_star_blue.png)
           <span class="grey_7a">我觉得面试有难度</span>
     </div>
     <div>
           ![](/v3/images/star/i_star_blue.png)
           <span class="grey_7a">面试总体感觉很好</span>
    </div>
</div>

然而,在做这节课的作业时,发现了一个问题:主要的面试信息<question_content> 面经内容是不完全的,需要点击“查看全文”才能看到所有的信息,且该部分的页面元素较为混乱。

这样文字叙述可能太抽象,接下来上图对比一下大家就看清楚了。

原有页面——面经内容部分的页面元素较为混乱

仔细观察就可以看到,上面的红色框内的元素还算规整,而下面的主要内容信息就比较乱了。原网页此处需要点击“查看全文”才看得到所有的信息。而在爬虫的过程中,这一点是否合理我不确定,但我知道这绝对不是一个好的爬虫策略。

因此经过一番探究最后敲定了另一套方案,具体如下:

页面元素再次探究

我向爬去的面经分享信息主要的页面元素为<section class="interview_item qa_item wrap_style mt15">,而具体的面经内容信息主要由<article>下包含的内容,从上图中可以看到如下的元素信息:

<a hred="/gsmsh10536702.html"  ........>

这是一个面经文章的具体网页,完整的url网页为"http://www.kanzhun.com/gsmsh10536702.html",即看准网的官网链接加个后缀。而点进这个链接后,再次审查该网页的页面元素。

新网页的页面元素审查

从红色边框中可以看出每个信息的页面元素都比较规整,相比于原网页,爬取会更方便、有规律一些。

所以新的爬取策略如下:“面试”导航栏——搜索关键字“数据分析”——得到所有与数据分析相关的结果页面——进入热度排名较高的公司的面经网页——先爬取公司的主要信息——再进入到各个面经的主页面爬取相关的面经信息

因为爬虫经验较少,所以上述的策略一定存在着问题。因而这一策略会随着后续课程的学习不断的改进,目前是基于我所有相关的知识做出的决策,并不是最终的爬取依据。

好的,以上就是我对上次作业的纠错与修改,下面进入这次课程的作业主题。

  • 主要任务:爬取页面元素

根据老师给的爬虫代码进行修改,目前只把核心的一些代码修改了过来,而且还碰到了问题。

一、页面网址设置

仍旧以百度公司为例,具体要爬取的根目录为看准网的网址,种子url是以百度公司为主页的数据分析面经结果。

url_root = 'http://www.kanzhun.com'  #根目录
url_seed = 'http://www.kanzhun.com/gsm11514.html?q=%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90&ka=select-hotcom-1'  #要爬取的页面

问题

#第九个面经分享
<a href="/gsmsh8190691.html" ka="interview-detail1-9" target="_blank">
<h3 class="question_title">
有自己的风格刚毕业的人不错的选择。
</h3>
</a>
#第十个面经分享
<a href="/gsmsh942478.html" ka="interview-detail1-10" target="_blank">
<h3 class="question_title">
面试官很好 开导性问题。
</h3>
</a>

上面这段html代码是我想要爬取的主要的页面元素,与老师给定的代码有些区别,老师主要爬取属性class = ‘title’的所有元素(代码links = soup.find_all('a', {'class': 'title'}) ),简书的html代码如下:

<a class="title" target="_blank" href="/p/8f6ee3b1efeb">爬虫第三次作业-0706</a>

而这样一比较,问题就出现了。我想爬取的页面信息中并没有独一无二的class属性,这就尴尬了,我如何获取href信息呢?难道要用ka属性吗?然后用正则匹配?

二、爬取页面的主要内容

进入面经的主页面(这里以网页http://www.kanzhun.com/gsmsh10536702.html为例),主要想要爬取的信息的页面元素如下:

<article>
         <h1><span class="desc">百度数据分析员面试</span>挺上档次的企业,让人有想法。</h1>
         <div class="question_content">面试的时候想问了我对主流的几个地图app的建议和看法,还问了我一些关于对市场的看法以及对个人规划的事情。</div>

         <p class="interview_qa">面试官的问题:</p>
         <p class="question_title"><em>问</em>面试的时候考官让我说一下当前对于是市场上的所有地图导航app的看法,以及对当前行业的发展走向的看法。</p>
         <p class="question_title"><em>答</em>我说现在市面上的地图app主流的有百度和高达以及google。我认为做的很好的是百度和google。两者各有特的。百度有着更加亲和力的app内容,让人更喜欢,地图的精准度是前提,还能有对周边的一些地方有建议性的引导作用。google可能正引导上面更加专业,精准度也略高,但是更像是一款专业性的软件而不是一个让人更加想使用的软件</p>
 </article>

对应于这样的页面结构,则对应要爬取的面经标题与面经内容的代码如下:

title = soup.find('span', {'class': 'desc'}).text#获取面经标题
content = soup.find('div', {'class': 'question_content'}).text #获取面试过程信息
content1 = soup.find('p', {'class': 'question_title'}).text #获取面试过程中面试官提到的问题,以及被面试人的回答(附加信息,面经分享中不一定有,但一定要有规则去爬取这部分的信息)

上述这段代码中,面经标题原本应该是<h1>标签中的内容,但这个标签没有任何的独一无二的属性可被识别,因此只能转战到span标签内的信息,不过应该没什么影响,毕竟内容已经得到了。

三、阶段总结

上述即为在完成作业3过程中的结论以及遇到的问题。其中遇到问题时没有足够的储备知识进行灵活的更改代码,其次因个人时间有限,并未运行代码爬取目标页面的主要元素,这一点深感惭愧!后续会抽出时间努力完善这一课的作业,严格要求自己!

除了上述的总结,其实还有一些思路的拓展:是否要将用户对这次面试的评价信息也保存下来呢?关键还有独特属性class可以筛选出信息,所以后续很可能会添加这部分任务到爬取规则中。

<div class="rdrc_center">
      <div>
           ![](/v3/images/star/i_star_blue.png)
           <span class="grey_7a">我觉得面试有难度</span>
     </div>
<div>
    ![](/v3/images/star/i_star_blue.png)
    <span class="grey_7a">面试总体感觉一般</span>
  </div>
</div> 

总之,非常期待今天晚上老师的课程!


本文为 泰阁志-解密大数据 学习笔记,了解更多请关注微信“泰阁志”

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,478评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,825评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,482评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,726评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,633评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,018评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,168评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,320评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,264评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,288评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,995评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,587评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,909评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,284评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,862评论 2 339

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,260评论 25 707
  • 课程作业 选择第二次课程作业中选中的网址 爬取该页面中的所有可以爬取的元素,至少要求爬取文章主体内容 可以尝试用l...
    mudu86阅读 353评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,721评论 1 92
  • 7.8.2 PHP抽象方法和抽象类2 在OOP语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法做为...
    曹渊说创业阅读 771评论 0 3
  • 大家应该都听说过”新手练胸,老手练背”这句话。要练背肯定离不开“引体向上”和“高位下拉”这两个练背的黄金动作,但是...
    Zz小帅B阅读 1,291评论 0 0