Ist es möglich, mit Python eine "GET" -R -URL von einer Website zu schützen?Python

Python-Programme
Anonymous
 Ist es möglich, mit Python eine "GET" -R -URL von einer Website zu schützen?

Post by Anonymous »

Ich schreibe ein Programm, das Downloads von einer FCC -Website automatisiert. Link zur Website. Mein Code wählt derzeit den Status aus, dann möchte ich auf der linken Seite der Website die CSV -Dateien für Kabel, Kupfer, Faser usw. herunterladen. Laden Sie die URL im HTML des Download -Schaltfläche herunter und fällt es schwer, die Downloads zu automatisieren. Ich habe jedoch über die Registerkarte "Netzwerk" des Chrome -Debuggers erkannt, dass beim Klicken auf eine Download -Schaltfläche eine Anforderungs -URL erhält. Es fällt mir schwer, herauszufinden, wie mein Programm auf "Klicken" auf jede Schaltfläche "klicken" und nach der Anforderungs -URL suche, um die Datei zu eröffnen. Screenshot des Chrom -Debuggers mit dem Link, den ich < /p>
braucheimport time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

path_to_chromedriver = r"C:\Users\stackoverflow\Documents\chromedriver_win32"

def main():
chrome_options = Options()
chrome_options.add_argument("--headless")

# chrome driver path
service = Service(path_to_chromedriver)

driver = webdriver.Chrome(service=service, options=chrome_options)

driver.get('https://broadbandmap.fcc.gov/data-downl ... on=dec2022')

# Wait for the page to fully load
WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.ID, 'state')))

# select the state from dropdown
select = Select(driver.find_element(By.ID, 'state'))

# Iterate through states
for option in select.options[1:]: # Skipping the first option (Select...)
select.select_by_value(option.get_attribute('value')) # Select the state
time.sleep(5) # Wait for the page to update after state selection

# Download the files
download_files(driver)

driver.quit()

def download_files(driver):
# Everything I want to download
technologies = ['Cable', 'Copper', 'Fiber to the Premises', 'LBR Fixed Wireless', 'Licensed Fixed Wireless',
'Unlicensed Fixed Wireless']

# Wait for the page to update
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'btn-outline-primary')))

for tech in technologies:
try:
# Find the row element of the technology
row = driver.find_element(By.XPATH, f"//td[normalize-space(.)='{tech}']/ancestor::tr")

# Find the download button within the row and click it
download_button = row.find_element(By.CSS_SELECTOR, "button.btn.btn-outline-primary.border-0")
download_button.click()

time.sleep(5) # Wait for the download to finish.
except Exception as e:
print(f"An error occurred while trying to download '{tech}': {str(e)}")

if __name__ == '__main__':
main()
< /code>
Wenn ich dies ausführe, wird die Taste gedrückt, aber es wird eigentlich nichts heruntergeladen (was erwartet wird). Ich verstehe einfach nicht, wie ich die URL nach dem Klicken der Schaltfläche aus der Registerkarte Netzwerk kratzen kann.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post