网站数据收集-pdf批量下载

代码样例

    import os
    import requests
    from bs4 import BeautifulSoup

    # 设置要下载PDF的网页URL(这里应该是一个包含PDF链接的页面)
    # 注意:这个URL应该是一个您已知包含多个PDF下载链接的页面
    url = 'https://governmentattic.org/DocumentsDoD.html'

    # 创建一个目录来保存下载的PDF文件(如果目录不存在)
    save_dir = 'downloaded_pdfs'
    os.makedirs(save_dir, exist_ok=True)

    # 发送HTTP请求获取网页内容
    response = requests.get(url)
    response.raise_for_status()  # 如果请求失败,将抛出HTTPError异常

    # 使用BeautifulSoup解析网页内容
    soup = BeautifulSoup(response.text, 'html.parser')
    print(soup, 'soup')

    # 查找所有的PDF链接(这里假设链接是以.pdf结尾的)
    pdf_links = [a['href'] for a in soup.find_all(
        'a', href=lambda href: href and href.endswith('.pdf'))]

    # 下载每个PDF文件
    for pdf_link in pdf_links:
        # 获取PDF文件的名称(从链接中提取)
        pdf_name = os.path.basename(pdf_link)

        # 设置保存PDF文件的完整路径
        save_path = os.path.join(save_dir, pdf_name)

        # 如果文件已经存在,则跳过下载
        if os.path.exists(save_path):
            print(f"Skipping already downloaded file: {pdf_name}")
            continue

        # 发送HTTP请求下载PDF文件
        pdf_response = requests.get(pdf_link)
        pdf_response.raise_for_status()  # 如果请求失败,将抛出HTTPError异常

        # 将PDF文件内容写入到本地文件
        with open(save_path, 'wb') as f:
            f.write(pdf_response.content)

        print(f"Downloaded: {pdf_name}")

    print("All PDF files have been downloaded.")
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容