Python Selenium爬取数据
最近公司有一项Python爬取数据的工作,借鉴以往的代码将爬虫重新更新并整理
将现有爬虫分成几部分
0.文件读取器
其实文件读取和4中的文件存储是在一个部分的
这里简单介绍下xls的读取
defdeal_xls_col(name,sheet_name):
body=xlrd.open_workbook(name)
try:
sh=body.sheet_by_name(sheet_name)
except:
print"EORR"
returnsh.col_values(0)格式请忽略
这里读取了一竖行的xls的数据
返回的格式为list
1.总调度器
这里主要是写逻辑,及0234的顺序。
2.网页下载器
网页下载器主要是来模拟浏览器访问对应url
一个简单的例子
classHtmlDownloader(object):
defdownload(self,url):
ifurlisNone:
returnNone
response=urllib2.urlopen(url,timeout=300)
ifresponse.getcode()!=200:
returnNone
returnresponse.read()
例子只是去访问url并没有对cookie等相关限制信息做处理(需要请自行添加)
3.网页分析器
网页分析器其实就是来处理下载器返回的html的源码,比如用selenium来处理的话则有
company_info_text=driver.find_element_by_class_name('company_info_text')
company_text=driver.find_element_by_class_name('rowb-c-whitecompany-content')
就是用selenium的一些方法来获取你需要的数据而已
4.文件存储器
这里以xls为例:
defcreat_xls_6(xls_name):
styleBoldRed=xlwt.easyxf('font:color-indexred,boldon')
headerStye=styleBoldRedwb=xlwt.Workbook()
ws=wb.add_sheet(xls_name)
ws.write(0,0,"name",headerStye)
ws.write(0,1,"oper_name",headerStye)
ws.write(0,2,"start_date",headerStye)
ws.write(0,3,"xfsSearchStatus",headerStye)
wb.save(xls_name)
创建xls表格
definsert_xls_6(xls_name,id,name,oper_name,start_date,xfsSearchStatus):
oldWb=xlrd.open_workbook(xls_name)
newWb=copy(oldWb)
newWs=newWb.get_sheet(0)
newWs.write(id,0,name)
newWs.write(id,1,oper_name)
newWs.write(id,2,start_date)
newWs.write(id,3,xfsSearchStatus)
newWb.save(xls_name)
插入数据到表格
这里面没有什么高深的秘密,只要你封装好自己的函数就好了
上面的例子还不是最好的版本,因为每次使用都要重新修改,应该传入一个数据来代替那些变量,这样就可以适配各种数据的表格创建和添加了
还有要说的就是:一些网站会限制你爬取数据,但是大多数网站都是友好的,但是这并不表示你可以肆无忌惮的毫无限制的去爬取。爬取的时间最好设置成晚上或者。。。。
还有就是不要对目标网站造成不必要的‘伤害’。
爬虫并不难,且行且珍惜!
以上内容为大家介绍了PythonSelenium爬取数据,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/
相关推荐HOT
更多>>python类对象和实例对象是一样的吗
python面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“...详情>>
2023-11-06 22:21:27python pyc 文件
一个pyc文件包含了三部分信息:Python的magicnumber、pyc文件创建的时间信息,以及PyCodeObject对象。magicnumber是Python定义的一个整数值。一...详情>>
2023-11-06 16:10:10python的keras训练
Keras模型在输入数据和标签的Numpy矩阵上进行训练。为了训练一个模型,你通常会使用fit函数。文档详见此处。fit(self,x,y,batch_size=32,epochs...详情>>
2023-11-06 15:46:04python装饰器的概念
装饰器一直是我们学习python难以理解并且纠结的问题,想要弄明白装饰器,必须理解一下函数式编程概念,并且对python中函数调用语法中的特性有所...详情>>
2023-11-06 12:05:19