python爬虫爬取网页表格数据

yizhihongxing

想要爬取网页表格数据,我们通常需要经历以下几个步骤:

  1. 确认数据来源和目标网站,并分析目标网站的页面结构,找到表格数据所在的HTML标签和CSS类或ID。

  2. 使用Python中的requests库向目标网站发送HTTP请求,获取网页HTML文档。

  3. 使用Python中的BeautifulSoup库对HTML文档进行解析,并定位所需要的表格数据所在的标签。

  4. 将表格数据存储到本地文件或数据库中。

下面是两个具体的示例说明:

示例一:爬取中国城市经纬度数据

  1. 数据来源:http://www.nmc.cn/f/rest/province

  2. 页面结构分析:数据在表格中,每个城市的经纬度数据在表格中的对应列。

  3. 代码实现:

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)

示例二:爬取全球疫情数据

  1. 数据来源:https://www.worldometers.info/coronavirus/

  2. 页面结构分析:数据在表格中,每个国家/地区的疫情数据在表格中的对应行。

  3. 代码实现:

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技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python分布式爬虫打造搜索引擎——–scrapy实现

    http://www.cnblogs.com/jinxiao-pu/p/6706319.html 最近在网上学习一门关于scrapy爬虫的课程,觉得还不错,以下是目录还在更新中,我觉得有必要好好的做下笔记,研究研究。 第1章 课程介绍  1-1 python分布式爬虫打造搜索引擎简介 07:23  第2章 windows下搭建开发环境  2-1 pychar…

    爬虫 2023年4月8日
    00
  • 详解Python多线程Selenium跨浏览器测试

    下面是”详解Python多线程Selenium跨浏览器测试”的完整攻略。 简介 在这个攻略中,我们将学习如何使用Python的Selenium库进行多线程跨浏览器测试。我们将涵盖以下内容: 什么是Selenium? 安装Selenium 使用Selenium的基本操作 如何使用Selenium进行跨浏览器测试 如何使用Python的多线程处理来加速测试 什么…

    python 2023年5月18日
    00
  • 在字典中对 Python 字典进行排序

    【问题标题】:Sort a Python dictionary within a dictionary在字典中对 Python 字典进行排序 【发布时间】:2023-04-05 19:56:01 【问题描述】: 我正在尝试对字典中的字典进行排序。我的目标是根据它的值从高到低对“子”字典 [‘extra’] 进行排序。我遇到的问题是我的“子”字典嵌套在主字典的…

    Python开发 2023年4月6日
    00
  • python常用request库与lxml库操作方法整理总结

    以下是关于Python常用request库与lxml库操作方法整理总结的攻略: Python常用request库与lxml库操作方法整理总结 在Python中,request库和lxml库是常用的网络爬虫库。以下是Python常用request库与lxml库操作方法整理总结的攻略。 request库的使用 使用request库发送HTTP请求时,需要使用ge…

    python 2023年5月14日
    00
  • Python入门篇之正则表达式

    Python入门篇之正则表达式 正则表达式是一种强大的文本处理工具,它可以用来完成各种复杂的文本匹配操作。本篇教程将介绍Python中如何使用正则表达式进行文本匹配。 基本语法 正则表达式由各种特殊字符和普通字符组成,它们可以被组合成一些模式,用于匹配目标字符串中的文本。 以下是一些常用的正则表达式特殊字符: . 匹配任意一个字符 + 匹配一个或多个前一个字…

    python 2023年5月13日
    00
  • Python使用CMD模块更优雅的运行脚本

    Python自带了CMD模块,这个模块可以使Python程序更加优雅地运行脚本。下面是如何使用CMD模块运行Python脚本的详细攻略。 安装CMD模块 CMD模块在Python官方文档中的称呼是cmd — Support for line-oriented command interpreters。这个模块已经默认安装在标准Python环境中,你无需再次安…

    python 2023年5月20日
    00
  • Python的线程之线程同步

    线程同步是指在多线程并发执行的场景中,保证各个线程协作正确可靠的一种机制。在Python中,我们通常使用锁(Lock)和条件变量(Condition)两种机制进行线程同步。 一、锁(Lock) 1.1 什么是锁 锁是一种线程同步机制,主要用于协调多个线程的并发访问,实现线程之间的互斥。 1.2 锁的实现机制 Python中的锁是通过Lock对象实现的,Loc…

    python 2023年5月19日
    00
  • 从pandas一个单元格的字符串中提取字符串方式

    针对题目所提到的“从pandas一个单元格的字符串中提取字符串方式”的问题,我给出以下完整攻略: 1. str.extract函数 str.extract函数可以通过正则表达式从一个字符串中提取匹配的子字符串,并返回一个Series。其基本语法为: df[‘new_column’] = df[‘old_column’].str.extract(r’正则表达式…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部