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中使用tarfile压缩、解压tar归档文件示例
Apr 05 Python
Python中使用copy模块实现列表(list)拷贝
Apr 14 Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
Nov 06 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
pycharm的python_stubs问题
Apr 08 Python
Django实现图片上传功能步骤解析
Apr 22 Python
python入门教程之基本算术运算符
Nov 13 Python
Python try except else使用详解
Jan 12 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
5.PHP的其他功能
2006/10/09 PHP
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
PHP Yii框架之表单验证规则大全
2015/11/16 PHP
详解php中反射的应用
2016/03/15 PHP
PHP使用内置函数生成图片的方法详解
2016/05/09 PHP
PHP多个图片压缩成ZIP的方法
2020/08/18 PHP
php中关于换行的实例写法
2019/09/26 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
javascript 自动填写表单的实现方法
2010/04/09 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
vue.js的安装方法
2017/05/12 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
python实现线程池的方法
2015/06/30 Python
python计算圆周率pi的方法
2015/07/11 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
Python如何生成xml文件
2020/06/04 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
五种Python转义表示法
2020/11/27 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
CSS3 input框的实现代码类似Google登录的动画效果
2020/08/04 HTML / CSS
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
物业经理求职自我评价
2013/09/22 职场文书
网络工程专业毕业生推荐信
2013/10/28 职场文书
法学专业自我鉴定
2014/02/05 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL