Python爬取网页表格数据并写入excel中No.7

                   Python爬取网页表格数据并写入Excel

import requests
from bs4 import BeautifulSoup
import xlwt
#请求headers 模拟谷歌浏览器访问
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
def get_data():
    response = requests.get('http://www.hs-bianma.com/hs_chapter_01.htm', headers=headers)
    bs = BeautifulSoup(response.text,'lxml')

    # 标题处理
    title = bs.find_all('th')
    data_list_title = [] #定义一个空列表
    for data in title:
        data_list_title.append(data.text.strip()) #获取标签的内容去掉两边空格并添加到列表里

    # 内容处理
    content = bs.find_all('td')
    data_list_content = [] #定义一个空列表
    for data in content:
        data_list_content.append(data.text.strip()) #获取标签的内容去掉两边空格并添加到列表里
    #语句featList = [example[i] for example in dataSet]作用为: 将dataSet中的数据按行依次放入example中,然后取得example中的example[i]元素,放入列表featList中
    new_list = [data_list_content[i:i + 16] for i in range(0, len(data_list_content), 16)]

    # 存入excel表格
    book = xlwt.Workbook()
    sheet1 = book.add_sheet('sheet1', cell_overwrite_ok=True)

    # 标题存入
    heads = data_list_title[:] #将data_list_title第一位到最后一位赋值给heads
    ii = 0
    for head in heads:
        sheet1.write(0, ii, head)
        ii += 1

    # 内容录入
    i = 1
    for list in new_list:
        j = 0
        for data in list:
            sheet1.write(i, j, data)
            j += 1
        i += 1
    # 文件保存
    book.save('./data.xls')
print("全部完成")

#调用
get_data()

有问题请关注公众号【运维开发实战】小编会及时回复

  • 7
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 可以使用Python的requests和BeautifulSoup库来爬取网页表格数据,并使用pandas库将数据存储为Excel文件。 具体步骤如下: 1. 使用requests库发送HTTP请求获取网页内容。 2. 使用BeautifulSoup库解析网页内容,找到表格数据所在的HTML标签。 3. 使用pandas库将表格数据转换为DataFrame对象。 4. 使用pandas库将DataFrame对象保存为Excel文件。 示例代码如下: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 发送HTTP请求获取网页内容 url = 'http://example.com/table.html' response = requests.get(url) # 解析网页内容,找到表格数据所在的HTML标签 soup = BeautifulSoup(response.content, 'html.parser') table = soup.find('table') # 将表格数据转换为DataFrame对象 df = pd.read_html(str(table))[0] # 将DataFrame对象保存为Excel文件 df.to_excel('table.xlsx', index=False) ``` 其,`url`为要爬取的网页地址,`table`为表格数据所在的HTML标签,`df`为转换后的DataFrame对象,`table.xlsx`为保存的Excel文件名。 ### 回答2: Python是一种非常强大的编程语言,它在数据分析、机器学习和爬虫等领域表现得尤为突出。用Python爬取网页上的表格数据并存储为excel表格是一个非常常见的应用场景。 Python有许多库可以用来进行网络爬取,其比较流行的是Requests和Beautiful Soup。Requests库用于向网站发送HTTP请求,Beautiful Soup用于解析HTML结构,将数据进行提取。在这个过程,还需要用到pandas库,它可以让我们以数据框的形式保存数据,并轻松地输出为excel文件。 实现步骤如下: 1. 引入必要的库 ```python import requests from bs4 import BeautifulSoup import pandas as pd ``` 2. 获取网页内容 ```python url = 'http://www.example.com' # 网页地址 response = requests.get(url) # 获取网页 soup = BeautifulSoup(response.content, 'html.parser') # 解析网页 ``` 3. 找到目标表格 在Beautiful Soup,我们可以使用Tag、Name、Attributes和CSS选择器等选择器来定位目标元素。这里我们假设表格在网页上是一个table标签,可以通过以下代码进行选择: ```python table = soup.find('table') # 找到表格 ``` 4. 解析表格内容 在找到表格后,我们可以使用Beautiful Soup的方法,将表格内容逐行读取,并保存在一个二维的列表。这里我们假设表头和表格数据分别存在thead和tbody标签内,可以使用以下代码来进行解析: ```python headers = [] #表头 rows = [] #表格数据 # 解析表头 for th in table.thead.find_all('th'): headers.append(th.text) # 解析表格数据 for tr in table.tbody.find_all('tr'): row = [] for td in tr.find_all('td'): row.append(td.text) rows.append(row) ``` 5. 将数据存储到excel 使用pandas库,可以将数据数据框的形式存储,并使用to_excel()方法将数据保存到excel文件。 ```python df = pd.DataFrame(rows, columns=headers) # 创建一个数据框 df.to_excel('data.xlsx', index=False) # 保存为excel文件,不包括索引列 ``` 以上是使用Python爬取网页表格数据存为Excel的基本步骤,根据实际情况,可能需要根据不同的表格结构和数据类型进行一些调整和改进。总体上,Python可以极大地简化我们从网页上提取数据的过程,为我们的数据处理和分析工作提供了高效便捷的支持。 ### 回答3: Python是一种广泛使用的编程语言,也是数据科学领域最常用的语言之一,它拥有相当丰富和实用的爬虫库可以方便的实现数据采集。随着现在各个网站对数据的重视和数据交互的日益普及,进行网页数据爬取也变得越来越普遍,下面就简单介绍一下Python如何实现爬取网页表格数据并进行导出到Excel。 第一步:安装相关库 Python提供的第三方库有很多,当然也有很多与网络爬虫有关的库,例如requests、beautifulsoup4、pandas和openpyxl等。我们需要使用到的是requests(可以帮助我们获取所需的HTML网页)和pandas(可以帮助我们将数据保存为CSV或Excel格式),如果在安装库时遇到问题可以使用pip来安装: pip install requests pip install pandas pip install openpyxl 第二步:获取网页源码 获取网页源码的常用方法是使用requests库,例如我们可以使用以下代码获取百度首页的HTML源码: import requests url = 'https://www.baidu.com/' response = requests.get(url) html = response.text 第三步:使用beautifulsoup4库获取表格元素 在获取了网页源码之后,我们需要使用beautifulsoup4库来解析HTML,从而提取出表格元素并进行处理。假设我们想要获取表格元素的所有内容,可以使用以下代码: from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html.parser') table = soup.find('table', attrs={'class': 'table_class_name'}) 这里解释一下代码的参数,html.parser参数是HTML解析器,'table_class_name'是我们在HTML源码查找表格元素时要搜索的表格类。 第四步:将数据保存为Excel文件 我们现在已经获得了网页表格元素,接下来需要将这些数据保存为Excel格式的文件,我们可以使用pandas库来完成这个任务。假设我们要将数据保存为Excel格式的文件,并且我们需要将表头和行存储在独立的列: import pandas as pd df = pd.read_html(str(table))[0] df.to_excel(r'表格数据.xlsx', index=False, header=[ '表头A', '表头B', '表头C']) 这是一个简单的例子,我们可以通过pandas灵活设置DataFrame来实现更多的需求。 总结 Python代码爬取网页表格数据存为Excel非常方便,在前面的例子,我们可以使用requests库获取网页源码,使用beautifulsoup4库获取表格元素,使用pandas库将数据保存为Excel格式的文件,从而实现数据爬取的功能,如果涉及到页面分页或者反爬虫策略,需要按照实际情况进行相应的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值