Python 如何将刮取的数据导出到csv-selenium

Python 如何将刮取的数据导出到csv-selenium,python,selenium,Python,Selenium,我有两个功能可以从谷歌抓取数据,但我不知道如何将结果导出到带有标题和链接列的csv文件中。你能帮我一下吗 def get_search_attributes(driver): headers = driver.find_elements_by_xpath('//*[@id="rso"]/div/div/div/div/a/h3') headers = [header.text for header in headers] # print(header

我有两个功能可以从谷歌抓取数据,但我不知道如何将结果导出到带有标题和链接列的csv文件中。你能帮我一下吗

def get_search_attributes(driver):

    headers = driver.find_elements_by_xpath('//*[@id="rso"]/div/div/div/div/a/h3')
    headers = [header.text for header in headers]
    # print(headers)

    links = driver.find_elements_by_xpath('//*[@id="rso"]/div/div/div/div/a')
    links = [link.get_attribute('href') for link in links]
    #print(links)

    headers_df = pd.DataFrame(headers, columns=["headers"])
    links_df = pd.DataFrame(links, columns=["links"])

    return headers_df, links_df




def search_multiple_pages(driver, page_limit = 5):

    insert_search_value(driver)

    pagecounter = 0

    while pagecounter <= page_limit:
        get_search_attributes(driver)
        next_page_btn = driver.find_elements_by_xpath("//a[@id='pnnext']")
        if len(next_page_btn) < 1:
            print('no more pages')
            break
        else:
            element = WebDriverWait(driver, 5).until(expected_conditions.element_to_be_clickable((By.ID, 'pnnext')))
            driver.execute_script("return arguments[0].scrollIntoView();", element)
            element.click()
            pagecounter += 1
    return
def get_search_属性(驱动程序):
headers=driver。通过xpath查找元素('/*[@id=“rso”]/div/div/div/div/a/h3')
headers=[header.text用于headers中的header]
#打印(标题)
links=driver。通过xpath('/*[@id=“rso”]/div/div/div/div/a')查找元素
links=[link.get_属性('href')用于链接中的链接]
#打印(链接)
headers\u df=pd.DataFrame(headers,columns=[“headers”])
links\u df=pd.DataFrame(链接、列=[“链接”])
返回标题,链接
def搜索多个页面(驱动程序,页面限制=5):
插入搜索值(驱动程序)
pagecounter=0
而分页计数器
有关详细信息,请参见和


有关详细信息,请参见和。您应该使用字典将所有内容放在一个数据帧中

#headers_df = pd.DataFrame(headers, columns=["headers"])
#links_df = pd.DataFrame(links, columns=["links"])

df = pd.DataFrame({"headers": headers, "links": links})

df.to_csv(filename)

范例

import pandas as pd

df = pd.DataFrame({
    "Headers": ['A', 'B', 'C'], 
    "Links": ['https://A', 'https://B', 'https://C']
})

print(df)

df.to_csv('data.csv')
结果:

  Headers      Links
0       A  https://A
1       B  https://B
2       C  https://C

您应该使用字典将所有内容放在一个数据帧中

#headers_df = pd.DataFrame(headers, columns=["headers"])
#links_df = pd.DataFrame(links, columns=["links"])

df = pd.DataFrame({"headers": headers, "links": links})

df.to_csv(filename)

范例

import pandas as pd

df = pd.DataFrame({
    "Headers": ['A', 'B', 'C'], 
    "Links": ['https://A', 'https://B', 'https://C']
})

print(df)

df.to_csv('data.csv')
结果:

  Headers      Links
0       A  https://A
1       B  https://B
2       C  https://C

非常感谢,现在在标题值下的链接,我如何才能将其更改为一个右边有链接和标题的表?@Adrian如果您想在列中,那么您应该创建对列表
(标题,链接)
,然后它会将每一对作为行写入。您可以使用
zip(header\u csv,links\u csv)
创建对。或者您应该将所有的
数据框作为列保留在一个
中。非常感谢,现在链接位于标题值下,我如何才能将其更改为一个右侧带有链接和标题的表?@Adrian如果您希望在列中,那么您应该创建对的列表
(标题,链接)
,然后它会将每一对作为行写入。您可以使用
zip(header\u csv,links\u csv)
创建对。或者,您应该将所有数据框作为列保存在一个
数据框中。