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 相关文章推荐
Python读取图片EXIF信息类库介绍和使用实例
Jul 10 Python
Python简单连接MongoDB数据库的方法
Mar 15 Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 Python
matlab中实现矩阵删除一行或一列的方法
Apr 04 Python
Python延时操作实现方法示例
Aug 14 Python
python批量识别图片指定区域文字内容
Apr 30 Python
python打造爬虫代理池过程解析
Aug 15 Python
Python实现语音识别和语音合成功能
Sep 20 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
Jan 27 Python
python实现录制全屏和选择区域录屏功能
Feb 05 Python
Python绘制地图神器folium的新人入门指南
May 23 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
php数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
php json转换相关知识(小结)
2018/12/21 PHP
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
2014/05/05 Javascript
ext combobox动态加载数据库数据(附前后台)
2014/06/17 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
json的使用小结
2016/06/08 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python取数作为临时极大值(极小值)的方法
2018/10/15 Python
python交换两个变量的值方法
2019/01/12 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
Django命名URL和反向解析URL实现解析
2019/08/09 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
语文教育专业应届生求职信
2013/11/23 职场文书
计算机毕业大学生推荐信
2013/12/01 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
春节晚会主持词
2014/03/24 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
医德医风自我评价
2014/09/19 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
反邪教学习心得体会
2016/01/15 职场文书
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript