python3 爬取网页表格例子

本文适合Python爬虫初学者,通过实例演示如何使用BeautifulSoup库爬取并展示2016年中国企业500强排行榜的数据,包括企业名和营业收入。

我是初学者,希望对跟我一样的 “小白”有帮助

#网址如下:http://www.maigoo.com/news/463071.html

from bs4 import BeautifulSoup  

import requests  
import csv  
import bs4  
  
  
#检查url地址  
def check_link(url):  
    try:  
          
        r = requests.get(url)  
        r.raise_for_status()  
        r.encoding = r.apparent_encoding  
        return r.text  
    except:  
        print('无法链接服务器!!!')  
  
  
#爬取资源  
def get_contents(ulist,rurl):  
    soup = BeautifulSoup(rurl,'lxml')  
    trs = soup.find_all('tr')  
    for tr in trs:  
        ui = []  
        for td in tr:  
            ui.append(td.string)  
        ulist.append(ui) 


      
#保存资源  
def save_contents(urlist):
    try:  
        with open("数据.csv",'w') as f:  
            writer = csv.writer(f)  
            writer.writerow(['2016年中国企业500强排行榜'])  
            for i in range(len(urlist)):  
                writer.writerow([urlist[i][1],urlist[i][3],urlist[i][5]]) 
    except:
        pass 
 
def main():  
    urli = []  
    url = "http://www.maigoo.com/news/463071.html"  
    rs = check_link(url)  
    get_contents(urli,rs)  
  &nb
### 使用Python爬虫抓取网页中的表格数据并保存到本地 为了完成这一任务,可以采用多种方法和技术栈组合。这里主要依赖于`requests`库来发送HTTP请求获取页面内容;利用`pandas`处理和解析HTML表格结构;最后通过`openpyxl`将整理后的数据导出至Excel文档。 #### 安装必要的库 首先确保安装了所需的第三方模块: ```bash pip install requests pandas openpyxl beautifulsoup4 lxml ``` #### 抓取网页上的表格数据 编写脚本来访问目标网站,并定位到具体的表格元素。下面是一个简单的例子说明如何操作: ```python import requests from bs4 import BeautifulSoup import pandas as pd url = 'https://example.com/table-page' # 替换成实际的目标网址 response = requests.get(url) if response.status_code == 200: soup = BeautifulSoup(response.text, 'lxml') table = soup.find('table', {'class': 'data'}) # 根据实际情况调整选择器 df_list = pd.read_html(str(table)) if df_list: data_frame = df_list[0] output_file_path = './output.xlsx' with pd.ExcelWriter(output_file_path, engine='openpyxl') as writer: data_frame.to_excel(writer, index=False) print(f'Data has been successfully saved to {output_file_path}') else: print("Failed to retrieve the webpage.") ``` 这段代码实现了向指定URL发起GET请求,随后运用BeautifulSoup解析返回的HTML文本找到特定类名下的第一个表格标签[^1]。接着借助Pandas内置函数`read_html()`读取出所有匹配的表格作为DataFrame对象列表[^2]。一旦成功提取到了想要的数据,则调用`to_excel()`方法将其序列化成Excel格式并持久化到磁盘上[^3]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值