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

python爬取数据写入文件_使用Python爬取网页数据,并写入Excel文件

自学Python的时候,在网上看见一篇比较简单的爬虫小项目,于是自己便也想跟着别人的代码来学一下.看着这位博主的代码敲的以下代码,基本上都一致.源代码网站:https:blog.c

自学Python的时候,在网上看见一篇比较简单的爬虫小项目,于是自己便也想跟着别人的代码来学一下.

看着这位博主的代码敲的以下代码,基本上都一致.

源代码网站: https://blog.csdn.net/markleacode/article/details/65639947

第一部分:根据URL进行数据的爬取

# -*-coding:utf-8-*-

import urllib2

import sys

from bs4 import BeautifulSoup

# 写入Excel表需要使用的库

from openpyxl import Workbook

reload(sys)

sys.setdefaultencoding('utf-8') # 设置系统默认编码

print sys.version # 打印当前版本信息

sys.setdefaultencoding('utf-8')

# 为了方便翻页将网址代码分成两部分

urlstart = 'http://my.yingjiesheng.com/index.php/personal/xjhinfo.htm/?page='

urlend = '&cid=&city=21&word=&province=0&schoolid=&sdate=&hyid=0'

setSQLData = []

# 爬取数据 总页数64,为了练习,就取20页

for i in range(1, 11):

url = urlstart + str(i) + urlend

print '正在打印:' + url;

request = urllib2.urlopen(url)

html = request.read()

bs = BeautifulSoup(html, 'html.parser', from_encoding='utf-8')

alllist1 = bs.find_all('tr', class_='bg0')

alllist2 = bs.find_all('tr', class_='bg1')

alllist = alllist1 + alllist2

# 对数据进行处理筛选

for contenttd in alllist:

month = contenttd.find('td', width='120').text

companyweb = contenttd.find('td', width='250').find('a').get('href')

if 'http' not in companyweb:

companyweb = 'http://my.yingjiesheng.com/' + str(companyweb)

companyName = contenttd.find('td', width='250').find('a').text

school = contenttd.find('td', width='250').next_sibling.next_sibling.text

classRoom = contenttd.find('td', width='250').next_sibling.next_sibling.next_sibling.next_sibling.text

row = [month, companyweb, companyName, school, classRoom]

setSQLData.append(row)#将每条数据再次写入列表

关于爬取数据这一块的代码的书写以及格式和逻辑都还需要继续优化,后边会边学边进行优化.

代码还有很多可优化之处.只做自己学习记录,大神请忽略(如果有可优化的地方,欢迎提出以方便新手的我学习)

第二部分:将爬取到的代码写入Excel文件

# 将数据写入Excel

wb = Workbook()

# 设置Excel文件名

dest_filename = 'UserInfoFile.xlsx'

# 新建一个表

ws1 = wb.active

# 设置表头

titleList = ['时间', '网址', '招聘企业', '学校', '地址']

for row in range(len(titleList)):

c = row + 1

ws1.cell(row=1, column=c, value=titleList[row])

# 填写表内容

for listIndex in range(len(setSQLData)):

ws1.append(setSQLData[listIndex])

wb.save(filename=dest_filename)

以上便是本次的代码和输出结果,有很多需要优化的地方,进行简单罗列一下

针对URL的请求,数据的获取,以及获取到数据之后的数据处理筛选,使用Python类库进行优化

以这些方法的功能进行函数封装,创建不用功能的函数进行相互调用来实现.和主函数调用,不同文件调用

Excel文件在写入的时候使用Python进行排版美化展示



推荐阅读
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 手把手教你使用GraphPad Prism和Excel绘制回归分析结果的森林图
    本文介绍了使用GraphPad Prism和Excel绘制回归分析结果的森林图的方法。通过展示森林图,可以更加直观地将回归分析结果可视化。GraphPad Prism是一款专门为医学专业人士设计的绘图软件,同时也兼顾统计分析的功能,操作便捷,可以帮助科研人员轻松绘制出高质量的专业图形。文章以一篇发表在JACC杂志上的研究为例,利用其中的多因素回归分析结果来绘制森林图。通过本文的指导,读者可以学会如何使用GraphPad Prism和Excel绘制回归分析结果的森林图。 ... [详细]
  • 本文介绍了一个视频转换软件MyVideoConverter,该软件支持将mpg转换成swf格式,支持多种格式的转换,转换速度快,还能转换成3GP格式,同时具有音频分离提取功能。欢迎使用MyVideoConverter进行视频转换和音频提取。 ... [详细]
author-avatar
wuyanting67412
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有