热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python得到与处理结果怎么保存到excelpython爬取数据保存到Excel中

1#-*-conding:utf-8-*-23#1.两页的内容4#2.抓取每页title和URL5#3.根据title创建文件,发送URL请求,

1 #-*- conding:utf-8 -*-

2

3 #1.两页的内容

4 #2.抓取每页title和URL

5 #3.根据title创建文件,发送URL请求,提取数据

6 importrequests7 from lxml importetree8 importtime, random, xlwt9

10

11 #专家委员会成员的xpath("//tbody//tr[@height="29"]’)

12

13 classDoc_spider(object):14

15 def __init__(self):16 self.base_url = "http://www.bjmda.com"

17 self.url = "http://www.bjmda.com/Aboutus/ShowClass.asp?ClassID=12&page={}"

18 self.headers ={19 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"}20

21 defget_request(self, url):22 """发送请求,返回html"""

23 response = requests.get(url, headers=self.headers).content.decode("gbk")24 #time.sleep(random.random())

25 html =etree.HTML(response)26 returnhtml27

28 defparse_page_html(self, html, url):29 """提取列表页的专家委员会title和URL"""

30

31 url_lists = html.xpath("//tr/td[2]/a[2]/@href")[1:]32 temp_lists = html.xpath("//tr/td[2]/a[2]/text()")[1:]33 title_lists = [title.rstrip() for title intemp_lists]34

35 urls =[]36 titles =[]37

38 for i inrange(len(title_lists)):39 url = self.base_url +url_lists[i]40 title =title_lists[i]41 urls.append(url)42 titles.append(title)43

44 returnurls, titles45

46 defparse_detail(self, html):47 """详细页的提取数据,返回每组列表信息"""

48

49 lists = html.xpath("//td[@id="fontzoom"]//tr")50 content_list =[]51 for list inlists:52 contents = list.xpath(".//td//text()")53 new =[]54 for i incontents:55 new.append("".join(i.split()))56 content_list.append(new)57

58 returncontent_list59

60 defsave_excel(self, sheet_name, contents, worksheet, workbook):61 """保存数据到Excel"""

62

63 #创建一个workbook 设置编码

64 #workbook = xlwt.Workbook()

65 #创建一个worksheet

66 #worksheet = workbook.add_sheet(sheet_name)

67

68 try:69

70 for i inrange(len(contents)):71 if len(contents[i+1])>1:72 content_list = contents[i + 1]73

74 #写入excel

75 #参数对应 行, 列, 值

76 worksheet.write(i, 0, label=content_list[0])77 worksheet.write(i, 1, label=content_list[1])78 worksheet.write(i, 2, label=content_list[2])79 if len(contents[i+1])>3:80 worksheet.write(i, 3, label=content_list[3])81

82 #保存

83 #workbook.save(sheet_name + ".xls")

84 #time.sleep(0.1)

85 except:86 print(sheet_name,"保存OK")87

88 pass

89

90 defrun(self):91 #1.发送专家委员会列表页请求

92 urls = [self.url.format(i + 1) for i in range(2)]93

94 #创建一个workbook 设置编码

95 workbook =xlwt.Workbook()96

97 for url inurls:98 html =self.get_request(url)99 #2.提取委员会的title和URL

100 list_urls, titles =self.parse_page_html(html, url)101

102 for i inrange(len(list_urls)):103 url_detail =list_urls[i]104 #每个委员会的名称

105 title_detail =titles[i]106 #3.创建每个委员会文件,发送每个委员会的请求

107 html_detail =self.get_request(url_detail)108 #4.提取专家委员会详细页的内容

109 contents =self.parse_detail(html_detail)110 #保存每个委员会的所有人

111

112 #创建一个worksheet

113 worksheet =workbook.add_sheet(title_detail)114 self.save_excel(title_detail, contents,worksheet,workbook)115 workbook.save("专家委员会.xls")116 print("保存结束,请查看")117

118

119

120 if __name__ == "__main__":121 doc =Doc_spider()122 doc.run()



推荐阅读
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文详细介绍 Go+ 编程语言中的上下文处理机制,涵盖其基本概念、关键方法及应用场景。Go+ 是一门结合了 Go 的高效工程开发特性和 Python 数据科学功能的编程语言。 ... [详细]
  • PyCharm下载与安装指南
    本文详细介绍如何从官方渠道下载并安装PyCharm集成开发环境(IDE),涵盖Windows、macOS和Linux系统,同时提供详细的安装步骤及配置建议。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文介绍如何使用 Python 获取文件和图片的创建、修改及拍摄日期。通过多种方法,如 PIL 库的 _getexif() 函数和 os 模块的 getmtime() 和 stat() 方法,详细讲解了这些技术的应用场景和注意事项。 ... [详细]
  • 本文详细解析了如何使用Python的urllib模块发起POST请求,并通过实例展示如何爬取百度翻译的翻译结果。 ... [详细]
  • 本文详细介绍了Java Web应用程序中的过滤器(Filter)功能,包括其作用、实现方式及配置方法。过滤器可以在请求到达目标资源之前对其进行预处理,并在响应返回给客户端之前进行后处理。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
author-avatar
Sunflower_琪琪
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有