之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章
Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式
Python爬虫(2)-Selenium控制浏览器
Python爬虫(3)-Selenium结合pywin32模拟键盘操作
Python爬虫(4)-Selenium模拟鼠标操作
Python爬虫(5)-selenium用显式等待、隐式等待、强制等待,解决反复爬取网页时无法定位元素问题
Python爬虫(6)-selenium用requests、wget、urllib3这3种方法搞定图片和PDF文件下载
Python爬虫(7)selenium3种弹窗定位后点击操作,解决点击登录被隐藏iframe无法点击的登陆问题

Python爬虫(8)selenium爬虫后数据,存入sqlit3实现增删改查

Python爬虫(9)selenium爬虫后数据,存入mongodb实现增删改查

Python爬虫(10)selenium爬虫后数据,存入csv、txt并将存入数据提取存入另一个文件

  • 存入csv
    • python自带方法
      • 完整代码
    • pandas方式查询文件
  • 存入txt
    • python自带方法
    • pandas方式查询文件

本篇继续引用之前爬取房地产的信息作为存入的数据来源

from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.common.by import By
opt = ChromeOptions()            # 创建Chrome参数对象
opt.headless = True              # 把Chrome设置成可视化无界面模式,windows/Linux 皆可
driver = Chrome(options=opt)     # 创建Chrome无界面对象
driver.get("https://hui.fang.anjuke.com/loupan/all/a1_m94-95_o8_w1_z3/")
def sc():housename = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[1]/span').texthouseaddress = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[2]/span').texthousearea = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[3]').text#连接数据库,如果数据库中没有相应的数据库名称会自动创建一个print(housename,houseaddress,housearea)if __name__ == "__main__":sc()


在写入之前需要学习python的不同模式打开文件的方式,这个非常有用

模式 描述
r 只读方法打开文件,默认模式,无法对文件进行修改和添加
rb 二进制打开一个文件以只读模式
r+ 打开一个文件用于读写
rb+ 以二进制格式打开一个文件用户读写
w 以二进制格式打开文件用于写入,如果存在就打开文件,不然就从头开始编辑,原有内容删除,如果文件不存在就自动创建新文件
w+ 打开一个文件用于读写,如果文件存在就打开文件,从头开始编辑,原有内容删除,如果文件不存在就创建新文件
wb+ 以二进制格式打开,如果文件存在就打开,原有内容删除,文件不存在则创建
a 追加模式,新内容追加到原有内容之后,文件不存在则创建新文件
ab 以二进制模式追加,如果文件存在
a+ 打开一个文件用于读写,如果文件存在,在原有内容追加内容进去,不存在就创建新内容用于读写
ab+ 以二进制格式打开一个文件用于追加,如果文件存在则将文件放于结尾追加内容,不存在创建新文件用于读写

更多具体的操作方式看下面这篇文章
Python3 输入和输出

存入csv

python自带方法

由于我需要爬虫后写入所以需要选择以a+模式打开文件并进行写入操作

#用a+模式创建csv文件并写入f = open('house.csv', 'a+', encoding='utf-8')#基于文件对象构建csv写入csv_a = csv.writer(f)#将数据写入csv_a.writerow([housename,houseaddress,housearea])#关闭文件f.close()

完整代码

import csv
from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.common.by import By
opt = ChromeOptions()            # 创建Chrome参数对象
opt.headless = True              # 把Chrome设置成可视化无界面模式,windows/Linux 皆可
driver = Chrome(options=opt)     # 创建Chrome无界面对象
driver.get("https://hui.fang.anjuke.com/loupan/all/a1_m94-95_o8_w1_z3/")
def sc():housename = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[1]/span').texthouseaddress = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[2]/span').texthousearea = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[3]').text#连接数据库,如果数据库中没有相应的数据库名称会自动创建一个print(housename,houseaddress,housearea)#用a+模式创建csv文件并写入f = open('house.csv', 'a+', encoding='utf-8')#基于文件对象构建csv写入csv_a = csv.writer(f)#将数据写入csv_a.writerow([housename,houseaddress,housearea])#关闭文件f.close()if __name__ == "__main__":sc()

pandas方式查询文件

这种方法是一次性显示所有的csv里面的内容,如果要将信息单次一条一条插入进行爬虫,就可以用for循环

import pandas as pd#导入pandas
df = pd.read_csv("house.csv", encoding='utf-8')print(df)

存入txt

python自带方法

#打开txt文件以a+模式写入sctxt = open('house.txt',mode='a+', encoding="utf-8")#将爬虫后的文件写入sctxt.writelines([housename,houseaddress,housearea])#关闭文件sctxt.close()


完整代码

import csv
import pandas as pd
from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.common.by import By
opt = ChromeOptions()            # 创建Chrome参数对象
opt.headless = True              # 把Chrome设置成可视化无界面模式,windows/Linux 皆可
driver = Chrome(options=opt)     # 创建Chrome无界面对象
driver.get("https://hui.fang.anjuke.com/loupan/all/a1_m94-95_o8_w1_z3/")
def sc():housename = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[1]/span').texthouseaddress = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[2]/span').texthousearea = driver.find_element(By.XPATH, '//*[@id="container"]/div[2]/div[1]/div[3]/div[1]/div/a[3]').text#连接数据库,如果数据库中没有相应的数据库名称会自动创建一个print(housename,houseaddress,housearea)#打开txt文件以a+模式写入sctxt = open('house.txt',mode='a+', encoding="utf-8")#将爬虫后的文件写入sctxt.writelines([housename,houseaddress,housearea])#关闭文件sctxt.close()
if __name__ == "__main__":sc()

pandas方式查询文件

df = pd.read_csv("house.txt", encoding='utf-8')print(df)


Python爬虫(10)selenium爬虫后数据,存入csv、txt并将存入数据并对数据进行查询相关推荐

  1. Python爬虫之selenium爬虫,模拟浏览器爬取天猫信息

    由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...

  2. python保存数据使用csv和excel哪种文件最好_Python数据持久化-csv、excel篇

    2018年7月4日笔记 学习目标: 1.会使用Python第三方模块操作CSV文件 2.会使用Python第三方模块操作EXCEL文件 本章内容: Python操作CSV:什么是CSV.Python如 ...

  3. Python学习 | 10个爬虫实例

     如何安装requests库(安装好python的朋友可以直接参考,没有的,建议先装一哈python环境) windows用户,Linux用户几乎一样: 打开cmd输入以下命令即可,如果python的 ...

  4. python常见数据存储 csv txt pickle

    1.csv文件 (1)写入 import csvwith open('test.csv', 'w', newline='', encoding='utf-8') as wf:# 用csv文件包装wri ...

  5. txt 乱码_STATA数据导入——将TXT、EXCEL、SAS、SPSS数据/批量导入STATA

    作者:Misszhou早早早 邮箱:zlr1220@126.com 使用Stata进行数据分析时面临的第一个问题是如何将各种类型的数据转换为dta.格式,导入的途径主要有以下几种: Stat/Tran ...

  6. python selenium 进入新标签页_python 爬虫之selenium可视化爬虫

    文章目录 前文回顾 快速入门 元素定位 页面操作 等待方式 扩展程序加载 点击此处,获取海量Python学习资料! 之所以把selenium爬虫称之为可视化爬虫 主要是相较于前面所提到的几种网页解析的 ...

  7. python爬虫解析js_python爬虫解析js

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! location.href = localstorage.getitem(url ...

  8. python从txt拿取数据_python requests + xpath 获取分页详情页数据存入到txt文件中

    直接代码,如有不懂请加群讨论 # *-* coding:utf-8 *-* # import json import requests import pytesseract import time i ...

  9. python获取mysql中的数据供js调用_python 读取mysql数据至csv文件中,并发送邮件

    test 代码: #coding:utf-8 ''' Created on 2019年2月18日 @author: Administrator ''' import ConfigParser impo ...

  10. Python 3.10 有什么新变化

    本文介绍了 Python 3.10 相比 3.9 的新增特性. 详情请参阅 更新日志. 摘要 -- 发布重点 新的语法特性: PEP 634, 结构化模式匹配: 规范说明 PEP 635, 结构化模式 ...

最新文章

  1. Shell脚本中字符串的一些常用操作
  2. python字符串后面添加字符串_什么是字符串?怎样在Python中添加字符串?
  3. Nginx的五大应用场景详解
  4. python socket模块作用_python之socket模块详解--小白博客
  5. FatFs - Generic FAT Filesystem Module
  6. (CF#257)B. Jzzhu and Sequences
  7. IT增值服务,客户案例(一)--山东青岛在职人士,2年.Net经验,转Java开发半年
  8. 小米路由老毛子 潘多拉Padavan 无线桥接中继
  9. 三态缓冲器!74系列芯片的型号区别…
  10. 一个完整的软件开发过程到底需要哪些步骤?
  11. UltraCompare v21.00分析
  12. 全系列三极管应用参数
  13. 【初/中级前端面经】中小型公司面试时都会问些什么?
  14. java自学-常见的API(String、ArryList)
  15. oracle导出自增设置,教程方法;oracle中如何设置自增主键电脑技巧-琪琪词资源网...
  16. linux防护勒索病毒的补丁,抵御Petya勒索病毒的最新办法
  17. Ubuntu16.04 anaconda 上安装 opencv
  18. 怎么设置计算机桌面壁纸,电脑桌面壁纸怎么设置?
  19. 零基础开发 Node.js Addons 插件:参数与返回值处理
  20. 新款iPad发布:Retina显示屏、A5X、高清摄像头、语音听 ...

热门文章

  1. ajax的优缺点是什么?
  2. 晚上下班回家,女朋友穿成这样是什么意思
  3. php代码如何使用,PHP如何使用strval()函数?用法和代码示例
  4. 无线宝电脑版登陆不到服务器,主机版绝地求生常出问题及解决方法奇游联机宝汇总!...
  5. 10万元人民币,存银行3年,利息1万块钱,算高吗?
  6. mysql数据库表增加、删除、修改字段
  7. Docker安装部署,最详细教程
  8. 创维Android4.4.4,创维电视手机遥控
  9. C# 自动按比例裁剪去除图片色边(一般是黑边或者白边)
  10. 访问IP地址时host头可以改为任意域名