首页 > 解决方案 > 有没有办法将两个不同的 Python 文件复合到一个 Docx 文档中提取?

问题描述

我有两个不同的 Python 文件。他们每个人都会从网站上抓取一些数据,然后将数据打印到 docx 文件中。但是,我想将它们复合并将所有数据打印到一个 docx 文件中。例如:

来自文件 1 的标题 来自文件 1 的数据 来自文件 1 的数据

来自文件 2 的标题 来自文件 2 的数据 来自文件 2 的数据

它们应该在同一个文档中,但我真的想不通..我是一个完全的初学者,你能告诉我怎么做吗?我真的很感激。提前感谢您的所有帮助。

以下是代码:

代码1:

from bs4 import BeautifulSoup
from docx import Document
from docx.shared import Pt
import requests

user_agent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.``3945.88 Safari/537.37"
url = "https://www.brookings.edu/events/"
data = requests.get(url, headers={"User-Agent": user_agent})
soup = BeautifulSoup(data.text, "lxml")

document = Document()

heading = document.add_heading().add_run("Brookings Institute")
heading.font.name = "Cambria"
heading.font.size = Pt(14)


events = soup.find_all("article", class_ = "archive-view archive-event event-standard-view past")
for event in events:
    event_name = event.find("h4", class_ = "title")
    link = event.find("a", class_ = "event-content")
    try:
        print(event_name.text)
        document.add_paragraph(event_name.text, style='List Bullet')
        print(link['href'])
        document.add_paragraph(link['href'])
    except:
        continue

document.save('demo.docx')

代码2:

from bs4 import BeautifulSoup
from docx import Document
from docx.shared import Pt
import requests
url = 'https://www.newamerica.org/api/event/?time_period=past&page_size=12&page=1&story_image_rendition=small'

r = requests.get(url)
data = r.json()

document = Document()

heading = document.add_heading().add_run("New America")
heading.font.name = "Cambria"
heading.font.size = Pt(14)

for i in data['results']:
    title = i['title']
    link = i['url']
    try:
        print(f'Title: {title}\nURL: {link}\n\n')
        document.add_paragraph({title}, style='List Bullet')
        document.add_paragraph({link}, style='List Bullet')
    except:
        continue

document.save('demo.docx')

标签: pythonpython-3.x

解决方案


重构:

伪代码:

Imports

Create document

Get info from site 1
Put info from site 1 in document

Get info from site 2
Put info from site 2 in document

Write document

推荐阅读