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

标签 python python-3.x pandas selenium dataframe

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

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

代码:

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

最佳答案

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

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

关于python - 如何将程序的输出重定向到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57770525/

相关文章:

python-3.x - Selenium “Unable to find a matching set of capabilities” 尽管驱动程序位于/usr/local/bin

python - 如何扫描dynamodb中的所有项目?

python - 获得 'large' 错误,这些错误似乎太大而不能单独来自舍入

Python 使用 re.sub 删除后字符串。

python - 如何使用 DjangoORM 在 PostgreSQL 9.6 中使用 StringAgg 聚合函数

python - 如何使用 Python 在 Alexa 中添加动态实体?

python - 打印找到的实际字符串

python-3.x - 如何在单个级别上添加新列时使用 Pandas group-by?

python - 如何显示每个Y轴的图表类型以区分比较因素

python - 绘制 Pandas DataFrame 的累积返回