現在、URL のリストを含む CSV ファイルをアップロードできる Web ベースのシステムを作成する必要があります。アップロード後、システムは URL を 1 行ずつ読み取り、クロールの次のステップに使用します。ここで、クロールするには、クロールする前に Web サイトにログインする必要があります。ログイン Web サイトのソース コードはすでにあります。ただし、問題は、「upload_page.html」という名前の HTML ページを「upload_csv.py」という名前の flask ファイルに接続したいことです。ログインとスクレイピングのソース コードは flask ファイルのどこに配置する必要がありますか?
upload_page.html
リーリーupload_csv.py
リーリー私のログイン コードとクロール コードは正しい場所にありますか?ただし、エンコードが機能せず、アップロード ボタンをクリックしても処理されません
P粉2079697872023-09-08 00:06:27
csv_file = request.files['file'] # Load the CSV data into a DataFrame df = pd.read_csv(csv_file) final_data = [] # Initialize the web driver chrome_options = Options() chrome_options.add_argument("--headless") chrome_options.add_argument("--disable-gpu") driver = webdriver.Chrome(options=chrome_options) # Loop over the rows in the DataFrame and scrape each link for index, row in df.iterrows(): link = row['Link'] # Login to the website # Replace this with your own login code driver.get("https://example.com/login") username_field = driver.find_element_by_name("username") password_field = driver.find_element_by_name("password") username_field.send_keys("myusername") password_field.send_keys("mypassword") password_field.send_keys(Keys.RETURN) # Wait for the login to complete WebDriverWait(driver, 10).until(EC.url_changes("https://example.com/login")) # Scrape the website driver.get(link) start = time.time() # will be used in the while loop initialScroll = 0 finalScroll = 1000 while True: driver.execute_script(f"window.scrollTo({initialScroll},{finalScroll})") # this command scrolls the window starting from the pixel value stored in the initialScroll # variable to the pixel value stored at the finalScroll variable initialScroll = finalScroll finalScroll += 1000 # we will stop the script for 3 seconds so that the data can load time.sleep(2) end = time.time() # We will scroll for 20 seconds. if round(end - start) > 20: break