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 相关文章推荐
在PyCharm下打包*.py程序成.exe的方法
Nov 29 Python
python 获取页面表格数据存放到csv中的方法
Dec 26 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
May 13 Python
Python获取数据库数据并保存在excel表格中的方法
Jun 12 Python
Python脚本利用adb进行手机控制的方法
Jul 08 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
python+selenium 鼠标事件操作方法
Aug 24 Python
python pygame实现挡板弹球游戏
Nov 25 Python
python 中的paramiko模块简介及安装过程
Feb 29 Python
Python爬虫新手入门之初学lxml库
Dec 20 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
Jan 22 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
将文件夹压缩成zip文件的php代码
2009/12/14 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
2013/07/03 PHP
PHP循环结构实例讲解
2014/02/10 PHP
PHP实现简单搜歌的方法
2015/07/28 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
PHP中addcslashes与stripcslashes函数用法分析
2016/01/07 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
提升PHP安全:8个必须修改的PHP默认配置
2014/11/17 Javascript
JQuery中ajax方法访问web服务实例
2015/07/18 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
JavaScript SHA512加密算法详细代码
2016/10/06 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
理解nodejs的stream和pipe机制的原理和实现
2017/08/12 NodeJs
学习python (1)
2006/10/31 Python
python实现爬虫统计学校BBS男女比例(一)
2015/12/31 Python
关于Tensorflow使用CPU报错的解决方式
2020/02/05 Python
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
公司出纳岗位职责
2013/12/07 职场文书
2014年会演讲稿范文
2014/01/06 职场文书
初中家长寄语
2014/04/02 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
外语专业毕业生自荐信
2014/04/14 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
十八大演讲稿
2014/05/22 职场文书
卖车协议书范例
2014/09/16 职场文书
个人工作总结怎么写?
2019/04/09 职场文书