希望提供帮助?以下是您的选择:","Crunchbase","关于我们","感谢大家的大力支持!","快速链接","联属会员计划","高级","ProxyScrape 高级试用","代理类型","代理国家","代理用例","重要","Cookie 政策","免责声明","隐私政策","条款和条件","社交媒体","在 Facebook 上","LinkedIn","推特","Quora","电报","不和谐音","\n © Copyright 2024 -Thib BV| Brugstraat 18 | 2812 Mechelen | Belgium | VAT BE 0749 716 760\n"]}
如何快速有效地从网站中提取重要信息?手动提取数据需要花费大量时间。您可以使用网络搜刮,这是一种从网站获取非表格数据或结构不良数据的自动化方法。之后,您可以将数据转换成结构化的可用格式,如电子表格
如何快速有效地从网站中提取重要信息?手动提取数据需要花费大量时间。您可以使用网络搜刮,这是一种从网站获取非表格或结构不良数据的自动化方法。之后,您可以将这些数据转换成结构化的可用格式,如电子表格或 .csv 文件。
通过网络搜索,您可以在线存档数据并跟踪数据变化。企业广泛将其用于不同的目的。例如,在线商店使用它来搜索竞争对手的价格项目和公开网页。然后,他们利用这些信息调整价格。网络搜刮的另一种常见做法是联系人搜刮,在这种情况下,企业会收集电话号码或电子邮件地址等个人数据用于营销目的。
为什么有人要从网站上提取大量信息?要理解这一点,请看以下网络刮擦的应用。
您可以按照以下步骤从网站上抓取数据。
在 Python 中,我们可以使用以下库进行网络刮擦:
Pandas - Pandas 用于操作和分析数据。您可以使用该库提取数据并以所需格式存储。
Beautiful Soup - 这是一个解析 HTML 和 XML 文档的 Python 软件包。它创建的解析树有助于从网站中轻松提取数据。
Requests - 这是一个简单的 HTTP 库。
我们将利用该网站提取 COVID 案例数。之后,我们将分析数据并创建一些可视化图表。
如下所示,您可以在 Python 中导入 requests 和 BeautifulSoup,以进行网络搜刮。
导入请求
从bs4导入BeautifulSoup
指定要从中抓取数据的网站 URL。您必须使用 requests.get() 方法向指定的 URL 发送 GET 请求。此外,您还必须创建一个 BeautifulSoup 构造函数,该构造函数将接收两个字符串参数,如以下代码所示。
url='https://www.worldometers.info/coronavirus/countries-where-coronavirus-has-spread/'
page= requests.get(url)
soup= BeautifulSoup(page.text,'html.parser')
data= []
通过使用 soup.find_all() 方法,可以抓取 URL'sURL 表中的每个元素。该方法会返回一个对象,该对象提供基于索引的访问,可以使用 for 或 while 循环打印。
data_iterator= iter(soup.find_all('td'))
您可以使用 while True 循环,不断重复直到迭代器中有可用数据。
while True:
try:
country =next(data_iterator).text
确认 =next(data_iterator).text
死亡 =next(data_iterator).text
大陆 =next(data_iterator).text
对于 "确认 "和 "死亡 "这两列,请确保去掉逗号并转换为 int。
data.append((
country、
(confirmed.replace(', ',''))、
(deaths.replace(',',''))、
洲
))
除非停止迭代:
break
当剩下要遍历的元素数量为零时,将引发 StopIteration 错误。
运行上述代码后,您就可以从网站上提取数据了。您必须创建一个 Pandas 数据框架来进一步分析数据。在下面的代码中,我们按 COVID 确诊病例数对数据进行了排序。
导入 pandas 库以创建数据帧。
data.sort(key = lambda row: row[1], reverse = True)
将 pandas 导入 pd
df = pd.DataFrame(data,columns=['country','Number of cases','Deaths','Continent'],dtype=float)
df.head()
df['病例数'] =[x.replace(',','') for x in df['Number of cases']])
df['Number of cases'] = pd.to_numeric(df['Number of cases'])
df
您将得到以下输出结果:
要获取有关 Dataframe 的信息,请使用 df.info()。
df.info()
我们将创建一个名为 Death_rate 的新列,如下所示。
dff = df.sort_values(by ='病例数',升序 = False)
dff['Death_rate']= (dff['Deaths']/dff['Number of cases'])*100
dff.head()
输出结果如下
代理服务器允许您使用一个唯一的 IP 地址来访问您要抓取的信息。这样,网站就不会看到你的实际 IP 地址,从而让你可以匿名搜刮数据。由于以下原因,您必须使用代理服务器进行网络搜刮。
您可以使用以下两个代理从网站上搜刮数据。
大家都知道,数据可视化是用图形表示数据或信息。您可以使用图表、地图和图形等可视化工具来理解所表示的数据。让我们看看如何使用数据可视化工具将从本网站提取的数据可视化。
如下图所示,您必须导入以下库才能实现数据的可视化。
importseabornassns
importmatplotlib.pyplotasplt
frompylabimportrcParams
您可以绘制配对图来展示数据集中的配对关系。您可以使用下面的代码轻松实现该功能,并找出数据中的趋势,以便进行后续分析。
rcParams['figure.figsize'] = 15, 10
frommatplotlib.pyplot import figure
figure(num=None, figsize=(20, 6),dpi=80,facecolor='w',edgecolor='k')
sns.pairplot(dff,hue='Continent')
输出结果如下
您可以绘制条形图,将分类数据显示为矩形条,并比较数据中不同类别的值。
sns.barplot(x ="国家",y ="病例数",data = dff.head(10))
输出结果如下
使用散点图可以了解数值之间的关系。它使用点来表示变量之间的关系。
sns.scatterplot(x ="病例数",y ="死亡数",色调 ="洲",数据= dff)
输出结果如下
在下面的代码中,我们将按大洲对数据进行分组,并按 COVID 个案的数量进行排序。
dfg = dff.groupby(by = 'Continent',as_index = False).agg({'Number of cases':sum,'Deaths':sum})
dfgg = dfg[1:]
df1 = dfgg.sort_values(by = 'Number of cases',ascending = False)
df1['Death_rate'] = (df1['Deaths']/df1['Number of cases'])*100
df1.sort_values(by = 'Death_rate',ascending = False)
输出结果如下
现在,我们将绘制 "大陆 "和 "死亡率 "之间的柱状图,如下图所示。
sns.barplot(x ='大陆',y =' 死亡率',data= df1.sort_values(by='死亡率',升序=False))
输出结果如下
该柱状图显示,在所有国家中,死亡率最高的是南美洲,最低的是澳大利亚。
安装 texttable,创建一个简单的 ASCII 表格。然后,将其导入为 tt。
!pip install texttable
将 texttable 导入tt
您必须创建一个文本表对象,如下图所示。您必须在表格开头添加一个空行作为标题,并对齐各列。
table = tt.Texttable()
table.add_rows([(None,None, None,None)] + data)table.set_cols_align(('c','c', 'c', 'c',' c')) # l'表示左对齐,'c' 表示居中, ' r' 表示右对齐
table.header(('国家'、'病例数'、'死亡数'、'洲'))
print(table.draw())
在这里,输出结果显示了表格中的部分行。
通过网络刮擦,你可以快速高效地从网站上提取大量数据。您还可以将提取的非结构化数据转换为可用格式,如 .csv 文件。我们看到,通过使用Pandas和BeautifulSoup 这两个模块,可以从网络上抓取数据。代理可以匿名提取网络数据。您可以使用数据中心代理或住宅代理进行网络搜刮。住宅代理服务器比数据中心代理服务器更可靠,但价格昂贵。此外,我们还可以根据自己的需要进行数据分析,以获得有洞察力的信息。在本文中,我们使用条形图、对图和散点图等数据可视化工具来分析数据。