如何将程序的输出重定向到数据框

如何将文件的输出重定向到数据框。


此代码打开浏览器并键入提供的给定数据并获取第一个可用数据。


代码 :


selenium pincodes


from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from bs4 import BeautifulSoup

import re

import pandas as pd

import os

import html5lib

import json

import time

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions


pin=['mumbai','newyork']


for i in pin :


    url = "https://www.google.com/"

    chromedriver = r"C:\Users\me\chromedriver"

    driver = webdriver.Chrome(chromedriver)

    driver.implicitly_wait(30)

    driver.get(url)



    search = driver.find_element_by_name('q')

    search.send_keys(i,'pincode')

    search.send_keys(Keys.RETURN)


    WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, '//div[@class="IAznY"]//div[@class="title"]')))

    elmts = driver.find_elements_by_xpath('//div[@class="IAznY"]//div[@class="title"]')

    print(i,elmts[0].text)


    time.sleep(3) 

    driver.quit()


此代码输出以下内容



newyork 10001

mumbai 230532


如何像这样将此输出重定向到df


city      pincode


newyork    10001

mumbai     230532


www说
浏览 165回答 3
3回答

翻过高山走不出你

声明两个数组并添加到数据框中。from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom bs4 import BeautifulSoupimport reimport pandas as pdimport osimport html5libimport jsonimport timefrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditionspin=['mumbai','newyork']#Declare list hereCity=[]PinCode=[]for i in pin :    url = "https://www.google.com/"    chromedriver = r"C:\Users\me\chromedriver"    driver = webdriver.Chrome(chromedriver)    driver.implicitly_wait(30)    driver.get(url)    search = driver.find_element_by_name('q')    search.send_keys(i,'pincode')    search.send_keys(Keys.RETURN)    WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, '//div[@class="IAznY"]//div[@class="title"]')))    elmts = driver.find_elements_by_xpath('//div[@class="IAznY"]//div[@class="title"]')    #Append the data into list    City.append(i)    PinCode.append(elmts[0].text)#added into dataframedf=pd.DataFrame({"City":City,"PinCode":PinCode})print(df)time.sleep(3)driver.quit()输出:      City PinCode0   mumbai  2305321  newyork   10001

慕工程0101907

像这样?from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom bs4 import BeautifulSoupimport reimport pandas as pdimport osimport html5libimport jsonimport timefrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditionspin=['mumbai','newyork']df_output = pd.DataFrame(columns=["City", "pincode"])for i in pin :    url = "https://www.google.com/"    chromedriver = r"C:\Users\me\chromedriver"    driver = webdriver.Chrome(chromedriver)    driver.implicitly_wait(30)    driver.get(url)    search = driver.find_element_by_name('q')    search.send_keys(i,'pincode')    search.send_keys(Keys.RETURN)    WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, '//div[@class="IAznY"]//div[@class="title"]')))    elmts = driver.find_elements_by_xpath('//div[@class="IAznY"]//div[@class="title"]')    print(i,elmts[0].text)    df_output = df_output.append(pd.DataFrame(columns=["City", "pincode"], data=[[i,elmts[0].text]]))    time.sleep(3)     driver.quit()print(df_output)

一只名叫tom的猫

从另一个脚本执行脚本(作为子进程)并解析(重定向的)输出在技术上可以完成,但这绝对不是正确的方法(实际上也不是最简单的方法)。相反,您希望将脚本重构为modules中的函数,并让一个函数处理另一个函数的结果。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python