当前位置: 首页 > news >正文

盈佳国际天天做赢家网站建筑焊工证查询网站官方网

盈佳国际天天做赢家网站,建筑焊工证查询网站官方网,网络推广的优化服务,北京网站系统开发python爬虫的方便大家都懂的。那么#xff0c;既然常用#xff0c;那么我们当然要封装啦。 那么我们可以先封装一个父类的爬虫 我自己的设计想法就是#xff0c;首先#xff0c;爬虫必须要有个字段来存储匹配的规则gainRule#xff0c;然后有个字段存储需要取什么属性outA…python爬虫的方便大家都懂的。那么既然常用那么我们当然要封装啦。 那么我们可以先封装一个父类的爬虫 我自己的设计想法就是首先爬虫必须要有个字段来存储匹配的规则gainRule然后有个字段存储需要取什么属性outAttr 然后就是有个需要处理的数据列表gainList最后是一个存储输出列表数据的outList和存储输出单条数据的outData 那么这个爬虫的父类定义如下 from bs4 importBeautifulSoupimportrequestsimportreclassSpiderHp:#gainRule页面的解析规则,outAttr页面存储的规则,gainList需要解析的列表页, def __init__(self,gainRule,outAttrNone,gainListNone): self.headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36} self.gainRulegainRule self.outAttroutAttr self.gainListgainList self.reqrequests.Session() self.outList[] self.outData #处理列表数据 def startAll(self,gainListNone):ifgainList: self.gainListgainListfor url inself.gainList: self.InitUrlList(url)#处理单页数据 defstart(self,gainData): self.InitUrlList(gainData) 爬虫的基本功能ok之后。接着我们要定义自己的种类爬虫。 比如我们一般需要一个爬取单个页面单个特征值的普通爬虫那么。我们写一个爬虫继承父类 #单页单条数据爬虫 classSpiderSigDataHp(SpiderHp):defInitUrlList(self, url): reqData self.req.get(url, headersself.headers) soup BeautifulSoup(reqData.text, lxml) nodeListsoup.select(self.gainRule)ifnodeList:ifself.outAttr: self.outDatanodeList[0].get(self.outAttr)else: self.outData nodeList[0] 像这个刚刚定义的爬虫我们一般可以用来爬取分页数量之类的。 接着我们再定义一个专门处理列表页的爬虫 #列表页通用爬虫 classSpiderListHp(SpiderHp):defInitUrlList(self, url): reqData self.req.get(url, headersself.headers) soup BeautifulSoup(reqData.text, lxml) nodeListsoup.select(self.gainRule)for node innodeList:ifself.outAttr: datanode.get(self.outAttr)else: datanodeif data not inself.outList: self.outList.append(data)if notnodeList:print(nodelist err,url) 最后再定义一个详情页的爬虫即可 #详情页爬虫 classSpiderDetailHp(SpiderHp):defInitUrlList(self, url): reqData self.req.get(url, headersself.headers) soup BeautifulSoup(reqData.text, lxml) data{}for key inself.gainRule: pssoup.select(self.gainRule[key])ifps:ifself.outAttr[key]: data[key]ps[0].get(self.outAttr[key])else: data[key]ps[0] strrepr(data[key])#去掉标签数据。一般如果取到最后还有标签。都是没用的了 data[key]re.sub(.?,,str) self.outList.append(data) 这样我们的爬虫就完成了。如果还有其他特殊需求的。可以再自己定义。 一般通过这三种爬虫的组合使用。可以解决大多数网页的捕获。接着我来随便演示下使用。 importSpiderimportre homehttp://www.xxxxxxx.net/ #就不告诉你们我在爬什么了 defmain(): url home hmh/list_6_1.htmlnumgetPage(url) #获取分页数量 list[homehmh/list_6_{}.html.format(i) for i in range(1,2)] hlistgetList(list)for i inrange(len(hlist)): hlist[i]homehlist[i]print(hlist[i])imgListgetDetail(hlist)print(imgList)print(len(imgList))#获取页面的分页数量 defgetPage(url): gainRule span.pageinfo strongmgrSpider.SpiderSigDataHp(gainRule) mgr.start(url) strrepr(mgr.outData)#去掉所有的标签的内容 numint(re.sub(.?,,str))returnnum#获取列表页 defgetList(list): gainRule ul.piclist li aoutAttr hrefmgrSpider.SpiderListHp(gainRule, outAttr) mgr.startAll(list)returnmgr.outList#获取详情页信息 defgetDetail(list): gainData{} outAttr{}gainData[image]#imgshow imggainData[page]li.thisclass aoutAttr[image]srcoutAttr[page]mgrSpider.SpiderDetailHp(gainData, outAttr) mgr.startAll(list)returnmgr.outListif __name____main__: main() 好了。就这样。最后配合下载和保存数据库
http://www.zqtcl.cn/news/103435/

相关文章:

  • 黄江网站建设外贸公司用的采购储运财务软件
  • 优化网站公司做网站建设
  • 门户网站的盈利模式网站建设中备案
  • 代码需求网站织梦怎么关闭网站
  • 浙江工信部网站备案查询东圃做网站
  • icp网站域名怎么填写官方网站建设银行年利息是多少钱
  • 沈阳做网站好的信息流优化师证书
  • 做招聘网站创业seo优化工作
  • 如何维护网站建设外卖网站建设价钱
  • 南宁保洁网站建设乌克兰服装网站建设
  • ppt链接网站怎么做的nas云存储做视频网站
  • 上海网站制作公司联系方式设计素材网站照片
  • 林州网站建设价格网络舆情是什么意思
  • 网站外链平台的建设方法平台类型(至少5个)?兰州道路建设情况网站
  • 网站建立健全举报工作机制设计电子商务网站主页
  • 广州市建设工程交易服务中心网站沈阳百度推广哪家好
  • 个人网站备案需要什么网站建立的重要性
  • wordpress用户名西安seo代理计费
  • 网站建设前准备工作手机上传视频网站开发
  • 海口网站建设是什么意思wordpress推广码
  • 杭州市住房和城乡建设厅网站海南网站建设设计
  • 网站建设平台一般多少钱wordpress 本地上传服务器
  • 怎么给网站命名男女做羞羞羞的网站
  • 北京响应式网站建设公司信息流推广方式
  • 一级a做爰片迅雷网站微分销系统定制开发
  • 山东网站建设工作室网页设计全部代码
  • 用c 做网站可以吗注册网站什么要求
  • 销售网站排名销售型网站模板
  • wordpress 汽车宁波seo整体优化
  • 网站建设公司在哪里宣传c2c旅游电子商务平台