写一个爬虫,将数据爬出后生成为一个excel文件

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

之前没做过,写个最简单的、类似Hello World的爬虫案例
 

1、部署开发环境,安装python,去官网下载 Download Python | Python.org

2、傻瓜式安装,都勾选上,点击install即可

3、控制台查看是否安装运行成功
4、安装依赖库 

pip install requests beautifulsoup4 lxml(爬取数据)

pip install pandas openpyxl(生成excel文件)

5、写代码,获取网站的数据,最后运行命令 python scraper.py(文件名称)即可

import requests
from bs4 import BeautifulSoup
import time
import random
import pandas as pd

# 目标网页 URL
urls = [
    "xxx.html",
    "xxx.html"
]

# 要过滤的文本内容
filter_keywords = [
    "标段(包)编号",
    "标段(包)名称",
    "中标单位",
    "项目经理",
    "中标价格",
    "工期(天)"
]

# 创建一个空的列表,用于保存提取的数据
extracted_data = []

# 循环遍历每个 URL
for url in urls:
    # 发送请求获取网页内容
    response = requests.get(url)
    if response.status_code == 200:
        # 使用 BeautifulSoup 解析网页
        soup = BeautifulSoup(response.content, 'lxml')

        # 查找所有 <td> 标签
        tds = soup.find_all('td', style='border-left:1px solid;border-top:1px solid')

        # 初始化列表,用于保存当前页面提取的所有字段
        current_row = []

        for td in tds:
            # 查找 <td> 标签下的 <div> 标签
            div = td.find('div')
            if div:
                # 获取 <div> 标签中的文本内容
                text = div.get_text(strip=True)  # strip=True 去除多余的空格
                # 判断文本是否包含需要过滤的关键字
                if any(keyword in text for keyword in filter_keywords):
                    continue  # 如果包含关键词,跳过该条数据
                
                # 添加提取的数据到当前行
                current_row.append(text)
        
        # 将一行数据(6个字段)添加到提取数据列表
        if len(current_row) == 6:  # 确保每行有6个字段
            extracted_data.append(current_row)

        # 在每次请求后暂停2秒,避免被封禁
        print(f"\r\n===============================")
        time.sleep(random.uniform(1, 3))
    else:
        print(f"请求失败,无法获取页面:{url},状态码:{response.status_code}")

# 定义 Excel 表格的列名
columns = ["编号", "项目名称", "中标单位", "项目负责人", "中标价格", "工期"]

# 将提取的数据转换为 DataFrame
df = pd.DataFrame(extracted_data, columns=columns)

# 保存为 Excel 文件
df.to_excel("extracted_data_formatted.xlsx", index=False, engine='openpyxl')

print("数据已成功保存到 'extracted_data_formatted.xlsx' 文件中。")

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值