想要爬取网页表格数据,我们通常需要经历以下几个步骤:
-
确认数据来源和目标网站,并分析目标网站的页面结构,找到表格数据所在的HTML标签和CSS类或ID。
-
使用Python中的requests库向目标网站发送HTTP请求,获取网页HTML文档。
-
使用Python中的BeautifulSoup库对HTML文档进行解析,并定位所需要的表格数据所在的标签。
-
将表格数据存储到本地文件或数据库中。
下面是两个具体的示例说明:
示例一:爬取中国城市经纬度数据
-
数据来源:http://www.nmc.cn/f/rest/province
-
页面结构分析:数据在表格中,每个城市的经纬度数据在表格中的对应列。
-
代码实现:
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 发送HTTP请求,获取HTML文档
url = 'http://www.nmc.cn/f/rest/province'
response = requests.get(url)
# 解析HTML文档,获取表格数据
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table')
data = []
for tr in table.findAll('tr'):
row = []
for td in tr.findAll('td'):
row.append(td.text.strip())
data.append(row)
# 将表格数据存储到CSV文件中
df = pd.DataFrame(data[1:], columns=data[0])
df.to_csv('city_location.csv', index=False)
示例二:爬取全球疫情数据
-
数据来源:https://www.worldometers.info/coronavirus/
-
页面结构分析:数据在表格中,每个国家/地区的疫情数据在表格中的对应行。
-
代码实现:
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 发送HTTP请求,获取HTML文档
url = 'https://www.worldometers.info/coronavirus/'
response = requests.get(url)
# 解析HTML文档,获取表格数据
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table', id='main_table_countries_today')
data = []
for tr in table.findAll('tr'):
row = []
for td in tr.findAll('td'):
row.append(td.text.strip())
if row:
data.append(row)
# 将表格数据存储到CSV文件中
df = pd.DataFrame(data[1:], columns=data[0])
df.to_csv('covid19_global.csv', index=False)
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫爬取网页表格数据 - Python技术站