在第一个简单的Python教程中,我们采取了以下步骤来抓取Web页面的内容:
私有编辑器007可以自动访问Python电子书和各种视频教程!
链接并检索网页的内容。
用BeautifulSoup处理html数据。
遍历SOUP对象以搜索所需的html元素。
用于简单的数据清理。
将数据写入CSV文件。
作为一名数据科学家,大多数人的第一项工作就是做网络抓取。当时,我不知道如何使用代码从网站中检索数据,这是最符合逻辑、最容易访问的数据源。经过几次尝试,网络抓取对我来说几乎是本能的。今天,它是我几乎每天都在使用的少数技术之一。
在今天的文章中,我将使用几个简单的例子向您展示如何抓取一个网站-例如,从FastTrack获得2018年100强公司的信息。使用脚本自动获取信息的过程,不仅可以节省手工整理的时间,而且可以将所有的企业数据组织在一个结构化的文件中,以便进一步的分析和查询。
太长而无法阅读:如果您只是想要一个基本的Python爬虫示例,那么欢迎使用本文中使用的所有代码(https:/github.com/kabacker/tuorials/blob/Master/pythonscraper/websitesCrape甚么track.py)。
准备开始。
每次决定使用Python做一些事情时,您应该问的第一个问题是,“我需要什么库?”
有几个不同的库可用于Web抓取,包括:
美味的汤。
请求。
刮伤了。
硒。
今天我们将使用美丽的汤库。您只需使用pip(Python包管理工具)就可以轻松地在计算机上安装它:
查看网页。
要找出想要抓取的页面元素,首先需要检查页面的结构。
在TechTrack 100 Enterprise(http:/www.leytrack.co.uk)页面中,右键单击表格并选择“Check”。在弹出的“开发工具”中,我们可以看到页面中的每个元素及其包含的内容。
右键单击要查看的页面元素,并选择“check”以查看特定的HTML元素内容。
现在数据存储在表中,只需要几行代码就可以直接获得完整的信息。如果你想自己练习攀岩的内容,这是一个很好的例子。但是记住,事情并不总是那么简单。
在本例中,所有100个结果都包含在同一页中,而。
标签被分成几行。然而,在实际的抓取过程中,很多数据往往分布在多个不同的页面上,您需要调整每个页面显示的结果总数,或者遍历所有页面,以捕获完整的数据。在“表”页上,可以看到一个包含全部100条数据的表。右键单击它,并选择“检查”。您可以很容易地看到HTML表的结构。包含内容的表体位于如下所示的标签内:
每一行都在一个。
标签,也就是说,我们不需要太复杂的代码,只需要一个循环,就可以读取所有的表数据,并保存到文件中。注意:通过检查当前页面是否发送了HTTPGET请求并获取请求的返回值,还可以获得页面上显示的信息。因为HTTPGET请求通常会返回已经结构化的数据,例如JSON或XML格式的数据,以供后续处理。您可以单击Developer工具中的Network类别(如有必要,只查看XHR选项卡的内容)。此时,您可以刷新页面,加载到页面上并返回的所有请求都将在网络中列出。此外,您可以使用某种REST客户端(例如InSmonia)来发起请求并输出返回值。
刷新页面后,将更新“网络”选项卡的内容。
利用美观汤库处理网页HTML内容。
在熟悉了网页的结构和需要抓取的内容之后,我们最终不得不拿起代码开始工作。
首先要做的是导入需要在代码中使用的各种模块。我们在上面提到了BeautifulSoup,它是一个可以帮助我们处理HTML结构的模块。下一个要导入的模块是urllib,它负责连接到目标地址并获取页面的内容。最后,我们需要能够将数据写入CSV文件并将其保存到本地硬盘驱动器上,因此我们需要导入CSV库。当然,这不是唯一的选择,如果要将数据保存为json文件,则需要导入json库。
接下来,我们需要准备好抓取目标URL。正如上面所讨论的,这个页面已经包含了我们需要的所有内容,所以我们需要做的就是将完整的URL
领取专属 10元无门槛券
私享最新 技术干货