|
发表于 2024-4-9 17:01:15
|
显示全部楼层
要实现将这些数据下载并存储到Excel文件中,你可以使用PySide6来创建一个界面,提供一个按钮供用户点击,然后使用requests库发送HTTP请求,解析网页内容,并将数据保存到Excel文件中。以下是一个示例代码,演示了如何使用PySide6实现这个功能:
- import sys
- from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QTextBrowser
- import requests
- import re
- import xlwt
- class MainWindow(QMainWindow):
- def __init__(self, parent=None):
- super().__init__(parent)
- self.setWindowTitle("区划代码下载")
-
- self.button = QPushButton(self)
- self.button.setText("下载")
- self.button.clicked.connect(self.downloadData)
- self.button.move(50, 50)
-
- self.textBrowser = QTextBrowser(self)
- self.textBrowser.setGeometry(50, 100, 600, 400)
-
- def downloadData(self):
- urls = [
- "https://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2023/11.html",
- "https://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2023/12.html",
- "https://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2023/65.html"
- ]
- data = []
-
- for url in urls:
- response = requests.get(url)
- response.encoding = response.apparent_encoding
- html = response.text
-
- code = re.findall("统计用区划代码\s*(\d+)", html)[0]
- classification = re.findall("城乡分类代码\s*(\d+)", html)[0]
- name = re.findall("名称\s*([\u4e00-\u9fa5]+)", html)[0]
-
- data.append([code, classification, name])
-
- workbook = xlwt.Workbook()
- sheet = workbook.add_sheet("区划代码")
- sheet.write(0, 0, "统计用区划代码")
- sheet.write(0, 1, "城乡分类代码")
- sheet.write(0, 2, "名称")
-
- for i, row in enumerate(data):
- for j, cell in enumerate(row):
- sheet.write(i+1, j, cell)
-
- workbook.save("E:/Temp/区划代码.xls")
-
- self.textBrowser.setText("区划代码下载完成!")
-
-
- if __name__ == "__main__":
- app = QApplication(sys.argv)
- window = MainWindow()
- window.show()
- sys.exit(app.exec())
复制代码
在这个示例中,我们创建了一个主窗口,并添加了一个按钮和一个文本浏览器用于显示下载结果。当用户点击按钮时,会触发`downloadData`方法。在该方法中,我们定义了需要下载的网址列表,并遍历每个网址。对于每个网址,我们使用requests库发送HTTP请求,获取网页内容。使用正则表达式从网页中匹配出所需的数据(统计用区划代码、城乡分类代码和名称)。然后,我们将这些数据保存到二维列表`data`中。
接下来,我们使用xlwt库创建一个Excel文件,并在文件中添加一个工作表。然后,我们将表头和数据写入工作表中。最后,我们将Excel文件保存到指定的路径。
希望这个示例能帮助你实现将区划代码下载并保存到Excel文件中。如有任何问题,请随时提问。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|