为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

www说 2022-05-19 14:19:41
如何将文件的输出重定向到数据框。此代码打开浏览器并键入提供的给定数据并获取第一个可用数据。代码 :selenium pincodesfrom 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']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 10001mumbai 230532如何像这样将此输出重定向到dfcity      pincodenewyork    10001mumbai     230532
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

声明两个数组并添加到数据框中。


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']

#Declare list here

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"]')

    #Append the data into list

    City.append(i)

    PinCode.append(elmts[0].text)


#added into dataframe

df=pd.DataFrame({"City":City,"PinCode":PinCode})

print(df)



time.sleep(3)

driver.quit()

输出:


      City PinCode

0   mumbai  230532

1  newyork   10001


查看完整回答
反对 回复 2022-05-19
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

像这样?


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']


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)


查看完整回答
反对 回复 2022-05-19
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

从另一个脚本执行脚本(作为子进程)并解析(重定向的)输出在技术上可以完成,但这绝对不是正确的方法(实际上也不是最简单的方法)。

相反,您希望将脚本重构为modules中的函数,并让一个函数处理另一个函数的结果。


查看完整回答
反对 回复 2022-05-19
  • 3 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号