HTML ページから URL を含む CSV ファイルをアップロードし、Flask を使用してクロールする URL を読み取ります。
P粉799885311
P粉799885311 2023-09-07 11:22:35
0
1
575

現在、URL のリストを含む CSV ファイルをアップロードできる Web ベースのシステムを作成する必要があります。アップロード後、システムは URL を 1 行ずつ読み取り、クロールの次のステップに使用します。ここで、クロールするには、クロールする前に Web サイトにログインする必要があります。ログイン Web サイトのソース コードはすでにあります。ただし、問題は、「upload_page.html」という名前の HTML ページを「upload_csv.py」という名前の flask ファイルに接続したいことです。ログインとスクレイピングのソース コードは flask ファイルのどこに配置する必要がありますか?

upload_page.html

リーリー

upload_csv.py

リーリー

私のログイン コードとクロール コードは正しい場所にありますか?ただし、エンコードが機能せず、アップロード ボタンをクリックしても処理されません

P粉799885311
P粉799885311

全員に返信(1)
P粉207969787
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
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート