如何用Python爬数据?(一)网页抓取

电子电器 2020-09-15143未知admin

  ★ 在便利境外人员执业、诊疗方面,境外医师时限压缩到5个工作日,实现了医师执业资格在园区内共享,符合条件的外国人及其陪护家属可申办与医疗服务期限一致的私人事务类签证或居留许可。

  最终,这些变化都体现在了失业率这个数据上,数据一看,很好看,比预期好得多,但实际上,背后的风险也比想象中要大得多,现在看着都出门了,但是疫情卷土重来之后呢?再回到4月份的那个高峰,美国人不还得老老实实窝在家里吗?

  回到正題。重慶經濟發展、城市化都還處于高速發展期。因為渝東南、渝東北地區的劃入,重慶地盤大、人多,城鎮化率在特大、超大城市中排名其實非常靠后。

  你期待已久的Python网络数据爬虫教程来了。本文为你演示如何从网页里找到感兴趣的链接和说字,抓取并存储到Excel。

  这位读者以为我的设置了关键词推送对应文章功能。所以看了我的数据科学教程后,想看“爬虫”专题。

  网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网网络机器人。其目的一般为编纂网络索引。

  其实,许多人口中所说的爬虫(web crawler),跟另外一种功能“网页抓取”(web scraping)搞混了。

  看到没有,即便你用浏览器手动拷贝数据下来,也叫做网页抓取(web scraping)。是不是立刻觉得自己强大了很多?

  了解了这一点,你就不要老盯着爬虫不放了。爬虫研制出来,其实是为了给搜索引擎编制索引数据库使用的。你为了抓取点儿数据拿来使用,已经是大炮轰蚊子了。

  要真正掌握爬虫,你需要具备不少基础知识。例如HTML, CSS, Javascri, 数据结构……

  既然我们的目标很明确,就是要从网页抓取数据。那么你需要掌握的最重要能力,是拿到一个网页链接后,如何从中快捷有效地抓取自己想要的信息。

  但有了这个基础,你就能比之前更轻松获取数据了。特别是对“文科生”的很多应用场景来说,非常有用。这就是赋能。

  Python语言的重要特色之一,就是可以利用强大的软件工具包(许多都是第三方提供)。你只需要编写简单的程序,就能自动解析网页,抓取数据。

  就选择我最近发布的一篇简书文章作为抓取对象好了。题目叫做《如何用《玉树芝兰》入门数据科学?》。

  假设你对文中提到教程都很感兴趣,希望获得这些文章的链接,并且存储到Excel里,就像下面这个样子:

  即便不会编程,你也可以全文,逐个去找这些文章链接,手动把文章标题、链接都分别拷贝下来,存到Excel面。

  如果你需要具体的步骤指导,或者想知道Windows如何安装并运行Anaconda命令,请参考我为你准备的视频教程。

  请跟着教程,一个个字符输入相应的内容。这可以帮助你更为深刻地理解代码的含义,更高效地把技能内化。

  读入网页加以解析抓取,需要用到的软件包是 requests_html 。我们此处并不需要这个软件包的全部功能,只读入其中的 HTMLSession 就可以。

  然后,我们建立一个会话(session),即让Python作为一个客户端,和远端服务器交谈。

  我们告诉Python,请把服务器传回来的内容当作HTML文件类型处理。我不想要看HTML里面那些乱七八糟的格式描述符,只看文字部分。

  不是,这种看着不像链接的东西,叫做相对链接。它是某个链接,相对于我们采集的网页所在域名()的径。

  这就好像我们在国内邮寄快递包裹,填单子的时候一般会写“省市……”,前面不需要加上国家名称。只有国际快递,才需要写上国名。

  “寻找正文中全部可以点击的蓝色文字链接,拷贝文字到Excel表格,然后右键对应的链接,也拷贝到Excel表格。每个链接在Excel占一行,文字和链接各占一个单元格。”

  仔细观察,你会发现这些HTML源代码里面,文字、图片链接内容前后,都会有一些被尖括括起来的部分,这就叫做“标记”。

  如同你要发送包裹给某个人,可以按照“省-市-区-街道-小区-门牌”这样的结构来写地址,快递员也可以根据这个地址找到收件人。

  我们点击这个分栏左上角(上图红色标出)的按钮。然后把鼠标悬停在第一个文内链接(《玉树芝兰》),点击一下。

  此时,你会发现下方分栏里面,内容也发生了变化。这个链接对应的源代码被放在分栏区域正中,高亮显示。

  确认该区域就是我们要找的链接和文字描述后,我们鼠标右键选择高亮区域,并且在弹出的菜单中,选择 Copy - Copy selector。

  这一长串的标记,为电脑指出了:请你先找到 body 标记,进入它管辖的这个区域后去找div.note标记,然后找……最后找到 a 标记,这里就是要找的内容了。

  我们让 Python 从返回内容中,查找 sel 对应的,把结果存到 results 变量中。

  results 是个列表,只包含一项。这一项包含一个网址,就是我们要找的第一个链接(《玉树芝兰》)对应的网址。

  我们不想要,只想要其中的链接字符串。所以我们先把它转换成列表,然后从中提取第一项,即网址链接。

  这里就是编程的技巧了。重复逐条运行的语句,如果工作顺利,我们就要尝试把它们归并起来,做个简单的函数。

  对这个函数,只需给定一个选择径(sel),它就把找到的所有描述文本和链接径都返回给我们。

  上述两个标记径里面,因为指定了在第几个“子”(nth-child)文本段(paragraph,也就是p代表的含义)去找a这个标记,因此只返回来单一结果。

  Pandas内置的命令,就可以把数据框变成csv格式,这种格式可以用Excel直接打开查看。

  注意这里需要指定encoding(编码)为gbk,否则默认的utf-8编码在Excel中查看的时候,有可能是乱码。

  本文为你展示了用Python自动网页抓取的基础技能。希望阅读并动手实践后,你能掌握以下知识点:

  有了链接作为基础,你就可以滚雪球,让Python爬虫“爬”到解析出来的链接上,做进一步的处理。

  为了巩固学习的知识,请你换一个网页,以咱们的代码作为基础修改后,抓取其中你感兴趣的内容。

  这并不是我们的代码有误,而是在《如何用《玉树芝兰》入门数据科学?》一文里,本来就多次引用过一些文章,所以重复的链接就都被抓取出来了。

  我把这一部分内容,放到了文末的付费阅读区域。如果你愿意支持我的数据科学系列教程写作,顺便核对一下你的代码是不是比我的更高效,只需支付2块钱(推广期价格),阅读该部分内容。

  你对Python爬虫感兴趣吗?在哪些数据采集任务上使用过它?有没有更高效的方式,来达成数据采集目的?欢迎留言,把你的经验和思考分享给大家,我们一起交流讨论。

  如果你对我的文章感兴趣,欢迎点赞,并且微信关注和置顶我的“玉树芝兰”(nkwangshuyi)。

  如果本文可能对你身边的亲友有帮助,也欢迎你把本文通过微博或朋友圈分享给他们。让他们一起参与到我们的讨论中来。

  爬虫文章 in 简书程序员专题: like:128-Python 爬取落网音乐 like:127-【图文详解】py...

  # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - X 系列...

  #阅读打卡1/21# 不会说话你就输了-墨陌 能说会道可以带来人气、好运气、和财气。说话作为最简单及最直接的表达方...

  我是Lem0,自学者,于“不务正业”,被“旁门左道”。我并使用简书,希望能够记录一些我记不住的事情...

  文无喧 “我愿意代替他的双眼,看遍繁花似锦,云卷云舒。我愿意代替他的双脚,踏遍天涯海角,山川万里。。。。死生契阔...

原文标题:如何用Python爬数据?(一)网页抓取 网址:http://www.scchrp.cn/a/dianzidianqi/2020/0915/185356.html

Copyright © 2002-2013 成德网 版权所有  

联系QQ:1352848661