files_dir = "/Users/hh/Desktop/python/fileshunan" def savefiles(): # 当前页码 pageno = driver.find_element(By.CSS_SELECTOR, "ul.pagination li.active button").text print("page", pageno) # 获取规划文件列表 filelist = driver.find_elements(By.CSS_SELECTOR, "div.card-body ul li") # 循环规划文件 for file in filelist: # 获取规划文件链接标签 a = file.find_element(By.TAG_NAME, "a") # 规划文件名称 filename = a.text # 规划文件地址 url = a.get_attribute("href") # 只保存纲要文件 outlines = file.find_elements(By.CSS_SELECTOR, "span.badge-warning") if len(outlines) > 0: # 获取规划文件后面可能存在的PDF徽标 pdfs = file.find_elements(By.CSS_SELECTOR, "span.badge-light") if len(pdfs) > 0: # 如果存在PDF徽标,则为PDF格式文件 url = url.replace("plan", "planpdf") print(filename, url) r = requests.get(url) with open(files_dir + filename + ".pdf", 'wb') as f: f.write(r.content) else: # 如果不存在PDF徽标,则为HTML格式文件 print(filename, url) r = requests.get(url) soup = BeautifulSoup(r.text, 'lxml') with open(files_dir + filename + ".html", 'wt', encoding="utf-8") as f: f.write(soup.select_one("#plancontent").prettify())
时间: 2024-02-14 09:28:05 浏览: 296
根据你提供的代码,你似乎想要下载规划文件并保存到指定的文件夹中。我注意到你使用了 Selenium 和 BeautifulSoup 库来解析网页内容。
首先,确保你已经导入了需要的库,如下所示:
```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from bs4 import BeautifulSoup
import requests
```
然后,在 `savefiles()` 函数中,你可以使用以下代码来保存规划文件:
```python
def savefiles():
# 当前页码
pageno = driver.find_element(By.CSS_SELECTOR, "ul.pagination li.active button").text
print("page", pageno)
# 获取规划文件列表
filelist = driver.find_elements(By.CSS_SELECTOR, "div.card-body ul li")
# 循环规划文件
for file in filelist:
# 获取规划文件链接标签
a = file.find_element(By.TAG_NAME, "a")
# 规划文件名称
filename = a.text
# 规划文件地址
url = a.get_attribute("href")
# 只保存纲要文件
outlines = file.find_elements(By.CSS_SELECTOR, "span.badge-warning")
if len(outlines) > 0:
# 获取规划文件后面可能存在的PDF徽标
pdfs = file.find_elements(By.CSS_SELECTOR, "span.badge-light")
if len(pdfs) > 0:
# 如果存在PDF徽标,则为PDF格式文件
url = url.replace("plan", "planpdf")
print(filename, url)
r = requests.get(url)
with open(files_dir + filename + ".pdf", 'wb') as f:
f.write(r.content)
else:
# 如果不存在PDF徽标,则为HTML格式文件
print(filename, url)
r = requests.get(url)
soup = BeautifulSoup(r.text, 'lxml')
with open(files_dir + filename + ".html", 'wt', encoding="utf-8") as f:
f.write(soup.select_one("#plancontent").prettify())
```
在上述代码中,我们首先获取当前页码,并打印出来。然后,通过 `driver.find_elements()` 方法获取规划文件列表。
接下来,我们循环遍历每个规划文件,并获取文件的链接标签、文件名称和文件地址。
我们使用 `file.find_elements()` 方法检查是否有纲要文件的标记。如果有,我们进一步检查是否存在 PDF 徽标,以确定文件的格式。如果存在 PDF 徽标,我们将构建相应的 URL,并使用 `requests.get()` 方法下载该文件,并将内容保存到指定的文件夹中。
如果不存在 PDF 徽标,则说明文件为 HTML 格式。我们使用 `requests.get()` 方法下载该文件,并使用 BeautifulSoup 解析 HTML 内容。然后,我们将解析后的内容写入到指定的 HTML 文件中。
请确保你已经设置好了 `files_dir` 变量,它指定了保存文件的目录路径。
请注意,以上代码仅供参考,并需要根据你的实际页面结构和需求进行适当的修改。另外,记得导入所需的库。
如果你有任何进一步的问题,请随时提问。
阅读全文