
忘记API使用Beautiful Soup进行Python Scraping,从Web导入数据文件:第2部分
对于每个网站而言,API并不总是适合您,但Beautiful Soup将依然与您维持联系以从任何网站搜集任何类别的数据。

Souce:gurutechnolabs.com
今天,数据发挥在每一个行业的关键作用。大部分数据都来自互联网。大多数公司在一项科技上投入数百万美元来获取客户,而没有从投资产品收益中盈利。互联网是那么庞大,它包括有关一个主题的更多信息,而不是你的书呆子教授。
从网络中提取信息的需求和重要性变得越来越响亮和清晰。大部分时间,当我们在您的脸书,推特,LinkedIn中添加任何信息并提供有关Yelp的反馈时,此信息将被视为数据。
而来自互联网的这类数据有很多不同的方法,例如评论,餐厅对Yelp的反馈,Twitter讨论,Reddit用户讨论和股票价位等。您可以搜集所有那些数据,组织并预测它。这就是我们将在本教程中探讨的内容。
有几种从Internet提取或导出数据的方式。您可以使用API从任何主要网站检索信息。这就是每个人现在拿来从互联网导入数据的东西 - 所有主要网站,如Twitter,Twitch,Instagram,Facebook都提供API来访问它们的网页数据集。所有那些数据都以结构化形式提供。
但是大多数网站都没有提供API。我觉得她们不期望我们使用它们的,或者你们毕竟缺少常识而不提供很多数据。
因此,在本主题中,我们将在不使用任何API的状况下从Web导入数据。但在我们处理之前,请看一下本系列的第1部分,因为所有内容都像点一样连接。
你不知道数据文件的东西一旦你也是数据科学的入门者,导入数据文件...
如果你是数据科学领域的新手,那么你需要尽力学习数据科学概念多么之快。现在......
朝向distascience.com
什么是Beautiful Soup

不要写那些糟糕的页面(来源:crummy.com)
Beautiful Soup是废弃特定网站或互联网数据的绝佳图书馆。也是最时尚的工作。它从HTML解析和提取结构化数据。Beautiful Soup会自动将传入的文本转化为Unicode,将传出的版本转换为UTF-8。除了文档没有定义编码之外,您不必记住编码,而Beautiful Soup也能够捕获编码。然后你需要看到原始编码。
规则:要运行您的程序,请使用Jupyter python环境来运行您的程序。而不是一次运行整个程序。我们也是采用了防止机制,因此您的计划不会破坏网站。在起初从那里提取数据之前,请查看网站条款和条件。请尽量阅读有关数据合法使用的声明。
基础 - 熟悉HTML
HTML代码在从网页提取数据方面起着至关重要的作用。因此,在我们处理之前,让我们跳转到HTML标记的基础。如果您对HTML标记有一点了解,可以再次前进到下一个级别。
<!DOCTYPE html>
<html>
<head>
</head>

<body>
<h1> Learning about Data</h1>
<p> Beautiful Soup</p>
<body>
</html>
这是HTML网页的基本词汇。每个<tag>都在网站内部提供一个块:
1.<!DOCTYPE html>:HTML文档需要以类别声明开头。
2. HTML文档包含在<html>和</ html>之间。
3. HTML文档的元和脚本声明位于<head>和</ head>之间。
4. HTML文档的可见部分位于<body>和</ body>标记之间。
5. 标题标题用<h1>到<h6>标签定义。
6. 标签。
其他有用的标记包括<a>用于超链接,<table>用于表,<tr>用于表行,<td>用于表列。
我们来检查您的HTML页面
按地区划分的欧洲国家列表 - 维基百科
需要额外引用以进行验证。通过向靠谱来源添加引文来优化本文。非资源...
en.wikipedia.org
让我们拿一个维基百科页面进行报废。如果你有谷歌浏览器,然后转到页面,首先右键点击它并开启浏览器检查器以检查网站。

检查维基百科页面
从结果中你可以看见wiki表中的表是可顺序的,如果你检查它更多,你可以在那里找到你所有的表信息,这太棒了啊!看到你可以用beautiful soup做哪些会更倍感惊讶。

可维护的Sortanble
让我们开始您的DIY项目

现在我们知道了我们的数据以及所在位置。所以,我们将起初废弃我们的数据。
在我们处理之前,您必须安装或导入一些库。
#Import Libraries
from bs4 import BeautifulSoup
import requests
如果您在安装过程中碰到任何难题,可以在每行后面使用sudo。
请求
它从而被人类用于与语言进行通信。这说明您不必手动将查询字符串连接到URL,也不必对POST数据进行字段编码。请求将使您无法使用Python发送HTTP / 1.1请求。在其中,您可以借助简单的Python库组合标题,表单数据,多个别文件和参数等内容。它还使您无法以同样的方法获得Python的响应数据。
BS4 - BeautifulSoup
Beautiful Soup是一个Python库beautifulsoup 存文件,用于从HTML和XML文件中提取数据。它与您最喜欢的解析器一起使用,可以生成自然的操作方法,检查和转化解析树。它一般可以花费程序员数小时或数天的工作量。
# Specify with which URL/web page we are going to be scraping
url = requests.get(‘;).text
我们首先探究给定网页的源代码并使用BeautifulSoup函数创建BeautifulSoup(汤)对象。现在,我们必须使用Beautiful Soap函数,这将帮助我们解读并应用从Wikipedia页面获得的HTML :
# import the BeautifulSoup library so we can parse HTML and XML documents
from bs4 import BeautifulSoup
然后我们将使用Beautiful Soup来解读我们在“URL”变量中收集的HTML数据,并分配一个不同的变量来存储名为“Soup”的Beautiful Soup格式的数据。
#Parse the HTML from our URL into the BeautifulSoup parse tree format
soup = BeautifulSoup(url, "lxml")
要在我们的网站中取得基础HTML结构的概念,请使用Beautiful Soup的美化功能并进行检查。
#To look at the HTML underlying to the web
print(soup.prettify())
这是我们从prettify()函数得到的:
<!DOCTYPE html>
<html class="client-nojs" dir="ltr" lang="en">

<head>
<meta charset="utf-8"/>
<title>
List of Asian countries by area - Wikipedia
</title>
<script>

如果您访问此链接并查看我们的欧洲国家/地区的维基百科页面,我们可以发现有关该国家/地区的更多信息。维基百科表已经修改 - 这使我们的工作更容易。
让我们在我们的美化HTML中查看它:

就是这样,从一个HTML <table>标签开始,类标识符为“wikitable sortable”。我们将记住这个类以供以后使用。如果你在你的程序中,你会发现表是怎样构成的,你将看一下使用<tr>和</ tr>标记开始和结束的行。
第一行标题包含<th>标记,而每个上面的数据行都有<td>标记。使用<td>标签,我们将告诉Python保护我们的数据。
在我们起初之前,让我们编写一些Beautiful Soup函数来演示它怎么捕获并可以从HTML网站向我们提供数据。如果我们执行title函数,Beautiful Soup将返回标题的HTML标记以及中的内容。
#To get the title of the page
soup.title()
我们可以使用此信息开始打算对HTML的攻击。
我们了解数据保留在HTML表中,因此首先beautifulsoup 存文件,我们关闭Beautiful Soup以检索页面中所有出现的<table>标记,并将他们添加到名为all_tables的数组中。
# use the 'find_all' function to bring back all instances of the 'table' tag in the HTML and store in 'all_tables' variable
all_tables=soup.find_all("table")
all_tables
在表类' wikitable sortable '下,我们有国家名称成为标题的链接。
# use the 'find_all' function to bring back all instances of the 'table' tag in the HTML and store in 'all_tables' variable
My_table = soup.find('table',{'class':'wikitable sortable'})
My_table

在表类' wikitable sortable '下,我们将国家/地区名称成为标题连接。现在,我们将提取<a>中的所有链接,我们使用了find_all()。
links = My_table.findAll('a')
links
从URL中,我们应该提取标题,即国家/地区的名称。为此,我们应该建立一个国家/地区列表,以便我们可以从链接中提取国家/地区名称并将其添加到列表国家/地区。
Countries = []
for link in links:
Countries.append(link.get('title'))
print(Countries)
现在,我们应该将列表国家/地区转换为Pandas DataFrame才能在python中工作。
import pandas as pd
df = pd.DataFrame()
df['Country'] = Countries
df
如果您有兴趣大量删除数据,您需要考量使用Scrapy,一个功能强大的python读取框架,并尝试将您的代码与一些公共API集成。
数据检索的性能显著低于抓取网站。例如,看看Facebook Graph API,它可以帮助您获得未在Facebook网页上显示的隐藏数据。考虑使用像MySQL这样的后端,当它更加太大时收集你的信息。
这让我们走到了beautiful soup教程的尽头。自信地,它为您提供了较好的工作,可以为您的下一个项目进行一些研究。我们终于引入了获得URL和HTML数据的请求,Beautiful Soup解析HTML和Pandas以将数据转化为数据帧以进行恰当的呈现。

你可以在这里找到这个教程笔记本。如果您有疑问,请随时强调。在下一个教程中,我们将探讨API。欢迎在LinkedIn 上与我联系。
参考文献:1.http: //www.gregreda.com/2013/03/03/web-scraping-101-with-python/ 。
2. 。
3. %2BWiki%2Btable%2Busing%2BPython%2Band%2BBeautifulSoup.ipynb
4.
5.
文章来源:medium,作者:。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:william.shi#ucloud.cn(邮箱中#请改为@)进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

后台-系统设定-扩展函数-手机广告位-内容正文底部
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-122407-1.html
猎潜小艇时到还打过几场家门口的海战
呵呵土豪来炫富了