python抓取某汽车网数据解析html存入excel示例


Posted in Python onDecember 04, 2013

1、某汽车网站地址

2、使用firefox查看后发现,此网站的信息未使用json数据,而是简单那的html页面而已

3、使用pyquery库中的PyQuery进行html的解析

页面样式:

python抓取某汽车网数据解析html存入excel示例

def get_dealer_info(self):
        """获取经销商信息"""
        css_select = 'html body div.box div.news_wrapper div.main div.news_list div.service_main div table tr '
        #使用火狐浏览器中的自动复制css路径得到需要位置数据
        page = urllib2.urlopen(self.entry_url).read()
        #读取页面
        page = page.replace('<br />','&')
        page = page.replace('<br/>','&')
        #由于页面中的电话信息中使用了br换行,所以在抓取的时候会产生问题
        #问题是:如果取得一对标签中的数据,中包含<br/>,会出现值得到br之前的数据,而后的数据将得不到,原因个人认为是解析html是会任务/>结尾标准        
        d = pq(page)
        #使用PyQuery解析页面,此处pq=PyQuery,因为from pyquery import PyQuery as pq
        dealer_list = []
        #创建列表用于提交到存储方法
        for dealer_div in d(css_select):
            #此处定位tr,具体数据在此标签中的td标签内
            p = dealer_div.findall('td')
            #此处p就是一个tr标签内,全部td数据的集合
            dealer = {}
            #此处的字典用于存储一个店铺的信息用于提交到列表中
            if len(p)==1:
                #此处多哥if判断是用于对数据进行处理,因为一些格式不符合最终数据的要求,需要剔除,这个快的代码按需求而定
                print '@'
            elif len(p)==6 :
                strp = p[0].text.strip()
                dealer[Constant.CITY] = p[1].text.strip()
                strc = p[2].text.strip()                dealer[Constant.PROVINCE] = p[0].text.strip()
                dealer[Constant.CITY] = p[1].text.strip()
                dealer[Constant.NAME] = p[2].text.strip()
                dealer[Constant.ADDRESSTYPE] = p[3].text.strip()
                dealer[Constant.ADDRESS] = p[4].text.strip()
                dealer[Constant.TELPHONE] = p[5].text.strip()
                dealer_list.append(dealer)  
            elif len(p)==5:
                if p[0].text.strip() != u'省份':
                    dealer[Constant.PROVINCE] = strp
                    dealer[Constant.CITY] = p[0].text.strip()
                    dealer[Constant.NAME] = p[1].text.strip()
                    dealer[Constant.ADDRESSTYPE] = p[2].text.strip()
                    dealer[Constant.ADDRESS] = p[3].text.strip()
                    dealer[Constant.TELPHONE] = p[4].text.strip()
                    dealer_list.append(dealer)
            elif len(p)==3:
                print '@@'
        print '@@@'
        self.saver.add(dealer_list)
        self.saver.commit()

4、最终代码执行成功,得到了相应数据并存入excel中

Python 相关文章推荐
Python2.x利用commands模块执行Linux shell命令
Mar 11 Python
Python常见异常分类与处理方法
Jun 04 Python
Python实现时钟显示效果思路详解
Apr 11 Python
Python OpenCV读取png图像转成jpg图像存储的方法
Oct 28 Python
python如何给字典的键对应的值为字典项的字典赋值
Jul 05 Python
python之yield和Generator深入解析
Sep 18 Python
python实现的登录与提交表单数据功能示例
Sep 25 Python
pytorch之inception_v3的实现案例
Jan 06 Python
使用python绘制cdf的多种实现方法
Feb 25 Python
python中yield的用法详解
Jan 13 Python
python实现简单区块链结构
Apr 25 Python
一文搞懂python异常处理、模块与包
Jun 26 Python
python共享引用(多个变量引用)示例代码
Dec 04 #Python
python函数返回多个值的示例方法
Dec 04 #Python
python sys模块sys.path使用方法示例
Dec 04 #Python
Python yield使用方法示例
Dec 04 #Python
python函数参数*args**kwargs用法实例
Dec 04 #Python
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 #Python
Python Web框架Pylons中使用MongoDB的例子
Dec 03 #Python
You might like
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
javascript读写json示例
2014/04/11 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
ubuntu下安装nodejs以及升级的办法
2015/05/08 NodeJs
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
Vue.js之slot深度复制详解
2017/03/10 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
2017/05/25 jQuery
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
Vue与Node.js通过socket.io通信的示例代码
2018/07/25 Javascript
小程序实现录音上传功能
2019/11/22 Javascript
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
Python 批量合并多个txt文件的实例讲解
2018/05/08 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
浅谈keras 的抽象后端(from keras import backend as K)
2020/06/16 Python
团组织关系介绍信
2014/01/12 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
党在我心中演讲稿
2014/09/02 职场文书
简易版租房协议书范本
2014/10/13 职场文书
先进个人评语大全
2015/01/04 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
战友聚会致辞
2015/07/28 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python
nginx配置之并发频次限制
2022/04/18 Servers