xpath & csv文件读写
原理:拿到网页源代码并且进行分析
关键词:etree .xpath a[@href="dapao"] a/@href text()
import requests,csv
from lxml import etree resp = requests.get(url)
html=etree.HTML(resp.text)
divs=html.xpath('//*[@class="new-service-wrap"]/div')
#定位的是 包含所有数据元素的大框/div(要下面全部的div 每个div都成为一个对象) for div in divs: #相对对查找 ./
price=div.xpath('./div/div/a[1]/div[2]/div[1]/span[1]/text()')[0].strip('¥') #去除多余字符 默认strip()移除所有空白 resp.close()
拿标签文本
<em style="width:80px;">2.00</em>
result2=tree.xpath('/html/body/ul/li[1]//em/text()')
筛选标签属性拿文本
tree.xpath('/html/body/ol/li/a[@href="dapao"]/text()')
拿标签里的属性值
i.xpath('./a/@href')
#相对查找
#结果都是列表
csv文件读写
f=open("csv/pig.csv", mode='w', encoding='utf-8')
csvwriter=csv.writer(f) #创建一个写的对象
i=['1','2','3','4']
csvwriter.writerow(i)
f.close()
xpath & csv文件读写的更多相关文章
- csv文件读写处理
csv文件读写处理 1.读取 第一种: import csv with open("route.csv","r") as f: #reader是一个迭代 ...
- C#中的CSV文件读写
目录 CSV文件标准 文件示例 RFC 4180 简化标准 读写CSV文件 使用CsvHelper 使用自定义方法 基于简化标准的写CSV文件 使用TextFieldParser解析CSV文件 使用正 ...
- [Python]-pandas模块-CSV文件读写
Pandas 即Python Data Analysis Library,是为了解决数据分析而创建的第三方工具,它不仅提供了丰富的数据模型,而且支持多种文件格式处理,包括CSV.HDF5.HTML 等 ...
- 用CSV文件读写数据的两种方式(转)
导读:有时候我们需要对收集的数据做统计,并在页面提供显示以及下载.除了对传统的excel存取之外,对CSV文件的存取也很重要.本文列出了这两种操作的详细代码. 代码: <?php $file = ...
- C# CSV文件读写
public class CSVFileHelper { /// <summary> /// 将DataTable中数据写入到CSV文件中 /// </summary> /// ...
- CSV 文件读写
转自:http://www.cnblogs.com/Clin/archive/2013/03/14/2959022.html public class CSVFileHelper { /// < ...
- Python: 对CSV文件读写 和 Md5加密
1. python 有专门的csv包,直接导入即可. import csv: 2. 直接使用普通文件的open方法 csv_reader=open("e:/python/csv_data/l ...
- python对csv文件读写的两种方式 和 读写文件编码问题处理
''' 如果文件读取数据出错,可以考虑加一个encoding属性,取值可以是:utf-8,gbk,gb18030 或者加一个属性error,取值为ignore,例如 open(path, encodi ...
- springbatch操作CSV文件
一.需求分析 使用Spring Batch对CSV文件进行读写操作: 读取一个含有四个字段的CSV文件(id, name, age, score), 对文件做简单的处理, 然后输出到还有一个csv文件 ...
随机推荐
- python 常用模块函数使用
1.collections模块在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict ...
- spring 支持哪些 ORM 框架 ?
Hibernate iBatis JPA JDO OJB
- SpringDataJpa 实体类过滤伪删除
当需要过滤实体类的数据时,根据伪删除字段进行过滤,需要使用Hibernate提供的@Where注解 使用方式: @Entity(name = "Account") @Where( ...
- 学习 MongoDB(一)
1.介绍 MongoDB是C++语言编写,是一个基于分布式文件存储的开源数据库系统,MongoDB将数据存储为一个文档, 数据结构由键值对(key=>value)组成,MongoDB文档类似于 ...
- mysql常见命令参数(一)
1.mysql命令常用参数 1.--auto-rehash (tab键自动补全,表名及表字段) # mysql -u root --auto-rehash # vim my.cnf [mysql] a ...
- pandas - drop()函数
函数形式:DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors ...
- 集合流之"交集(相同)和差集(区别的)"的使用
一.需求 今天做的是将两个字符串转为数组后再转集合,然后利用集合的流stream来进行差集过滤 二.差集代码 差集:将两个集合相同的数据去掉,留下不同的数据 1 @Test 2 public void ...
- 1kb 的 placeholder.js 增加 img 标签使用方式
预览 官方网站示例. 项目 github 地址 使用 引入 placeholder.js 到你的前段代码中: <script src="placeholder.js"> ...
- python-模拟页面调度LRU算法
[题目描述]所谓LRU算法,是指在发生缺页并且没有空闲主存块时,把最近最少使用的页面换出主存块,腾出地方来调入新页面. 问题描述:一进程获得n个主存块的使用权,对于给定的进程访问页面次序,问当采用LR ...
- c++实现状态模式
实验:用Java代码模拟实现课堂上的"银行账户"的实例,要求编写客户端测试代码模拟用户存款和取款,注意账户对象状态和行为的变化. 由于是c++,不像java那么灵活,所以类的调用方 ...