cURL自动读取小工具

做自动化测试的时候Postman判断数据什么的太麻烦,做个脚本代替一下

curl_parser.py

import re


def parse_curl(curl_command):
    # 匹配所有的 -H "key: value"
    header_pattern = re.compile(r'-H "([^:]+): ([^"]+)"')
    headers = dict(header_pattern.findall(curl_command))

    # 匹配URL
    url_pattern = re.compile(r'(https?://[^\s]+)')
    url_match = url_pattern.search(curl_command)
    url = url_match.group(0) if url_match else None

    return url, headers

main.py

import requests
import json
from curl_parser import parse_curl




def make_request(url, headers):
    payload = {
       
    }

    try:
        response = requests.post(url, headers=headers, data=json.dumps(payload))
        if response.status_code == 200:
            return response.json()  # 假设返回值是JSON
        else:
            print(f"Request failed with status code: {response.status_code}")
            return None
    except requests.RequestException as e:
        print(f"Request failed: {e}")
        return None


def main():
    curl_command = '''
 curl复制过来
    '''
    url, headers = parse_curl(curl_command)


   response_data = make_request(url, headers)
#在这里就可以使用返回数据了

if __name__ == "__main__":
    main()


### 如何使用 Curl 自动生成网络爬虫 #### 使用 Curl 进行数据抓取 Curl 是一种强大的工具,用于发送 HTTP 请求并获取目标资源的内容。通过在命令行中运行 `curl` 命令,可以轻松访问网页或 API 的内容[^1]。 以下是基于 Curl 自动化生成简单爬虫的一个基本流程: 1. **利用 Shell 或 Python 调用 Curl 获取页面内容** 可以编写脚本调用 Curl 来批量请求多个 URL 并保存其响应内容到本地文件中。 2. **解析返回的数据** 对于 HTML 页面或其他结构化的数据(如 JSON),需要进一步处理提取所需的信息。这通常涉及正则表达式或者专门的解析库(如 BeautifulSoup)来完成。 3. **实现自动化逻辑** 结合编程语言的功能扩展上述两步操作形成完整的爬虫程序。 下面提供一段简单的示例代码展示如何结合 Bash 和 Python 实现这一目的: ```bash #!/bin/bash # 定义要爬取的目标列表 targets=("https://example.com/page1" "https://example.com/page2") for target in "${targets[@]}"; do echo "Fetching $target..." curl "$target" --output "$(basename $target).html" done ``` 此脚本会依次向指定站点发起 GET 请求并将结果存入当前目录下的相应 html 文件里。 接着,在 Python 中读取这些文件并对它们进行分析: ```python from bs4 import BeautifulSoup def parse_html(file_path): with open(file_path, 'r', encoding='utf-8') as file: soup = BeautifulSoup(file.read(), features="lxml") # 提取特定标签内的文本或者其他感兴趣的部分 elements_of_interest = soup.find_all('div') return [element.get_text() for element in elements_of_interest] parsed_data = [] files_to_parse = ['page1.html', 'page2.html'] for filename in files_to_parse: parsed_items = parse_html(filename) parsed_data.extend(parsed_items) print(f"Parsed {len(parsed_data)} items.") ``` 以上例子展示了基础框架;实际应用时可能还需要考虑异常处理、并发控制等因素以提高效率和稳定性[^2]。 另外需要注意的是,在构建任何类型的 Web 爬虫之前,请务必查阅目标网站的服务条款(TOS),确保您的活动符合法律规范以及对方允许范围之内[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谁的BUG最难改

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值