Python 使用xpath匹配html内容并生成CSV文件
2020-01-11 17:39
169 查看
#-- coding: utf-8 -- import os import re import csv from lxml import html #生成CSV文件 def get_list_dir(): headers = ('标题', '内容', '来源', '时间', '作者') with open('D:/Python/PythonProjects/TestDemo/article/31530942.csv', 'w', encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile) writer.writerow(headers) dir_aim = "D:/Python/PythonProjects/TestDemo/article" for filename in os.listdir(dir_aim): #print(filename) article = get_article_content(filename) if article: with open('D:/Python/PythonProjects/TestDemo/article/31530942.csv', 'a+', encoding='utf-8-sig') as csvfile: writer = csv.writer(csvfile) writer.writerow(article) #读取html文件用xpath解析文件返回结果 def get_article_content(fileName): try: with open('D:/Python/PythonProjects/TestDemo/article/'+fileName, 'r', encoding='utf-8') as f: content = f.read() etree = html.etree ht = etree.HTML(content) title = "".join(ht.xpath("/html/body/div[5]/h1/text()")) content = "".join(ht.xpath("/html/body/div[5]/div[2]/p/text()")).replace("\n","") source = "".join(ht.xpath("/html/body/div[5]/div[1]/text()")) if source: source = re.search(r"来源:(.*?)\s",source) if source: source = source.group().replace("来源:", "") else: source = "" else: source = "" time = "".join(ht.xpath("/html/body/div[5]/div[1]/text()")) if time: time = re.search(r"时间:(.*?)$", time) if time: time = time.group().replace("时间:", "") else: time = "" else: time = "" edit = "".join(ht.xpath("/html/body/div[5]/div[3]/text()")) if edit: edit = re.search(r"责编:(.*?)\s",edit) if edit: edit = edit.group().replace("责编:", "") else: edit = "" else: edit ="" return (title, content, source, time, edit) except Exception as e: print(e) get_list_dir()
a+ 是追加方式写入
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 使用Python将TXT文本内容读取后生成指定XML格式的文件
- 记录问题1:selenium python:使用HTMLTestRunner生成测试报告时程序没错,但是目录下没有生成报告文件
- 使用Python将TXT文本内容读取后生成指定XML格式的文件
- Python---对html文件内容进行搜索取出特定URL地址字符串,保存成列表,并使用每个url下载图片,并保存到硬盘上,使用bs4,beautifulsoup模块
- Python使用difflib模块比较两个文件内容异同,同时输出html易浏览
- python3使用scrapy生成csv文件代码示例
- 解决python3.6下scrapy中xpath.extract()匹配出来的内容转成json与.csv文件没有编码(unicode)的问题
- Python---对html文件内容进行搜索取出特定URL地址字符串,保存成列表,并使用每个url下载图片,并保存到硬盘上,使用正则re
- Python——文件内容对比(可以生成HTML来观察结果)
- 使用python生成本地html文件
- Python之使用unittest框架和HTMLTestRunner.py文件实现多个测试用例执行与测试报告生成
- 使用js实现读取csv文件内容解析到html页面中
- 使用Python3生成CSV文件遇到的问题(空行/乱码)
- 在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
- python 使用CppHeaderParser库 根据c++头文件生成html说明文档表格
- Python 中使用 pyrex 生成 Linux 可执行文件
- 生成csv文件时内容中包含逗号的处理方式
- 使用python读取指定目录下的源代码并将内容复制到同一新文件中
- 使用commons-csv生成.csv文件
- python使用csv模块读写csv文件