Python 如何将刮取的数据导出到csv-selenium
我有两个功能可以从谷歌抓取数据,但我不知道如何将结果导出到带有标题和链接列的csv文件中。你能帮我一下吗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
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)
创建对。或者,您应该将所有数据框作为列保存在一个数据框中。