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的线程来解决生产者消费问题的示例
Apr 02 Python
使用Python简单的实现树莓派的WEB控制
Feb 18 Python
python机器学习之KNN分类算法
Aug 29 Python
解决python opencv无法显示图片的问题
Oct 28 Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 Python
详解Python正则表达式re模块
Mar 19 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 Python
python3用PIL把图片转换为RGB图片的实例
Jul 04 Python
Django model update的多种用法介绍
Mar 28 Python
django中使用Celery 布式任务队列过程详解
Jul 29 Python
使用TensorFlow直接获取处理MNIST数据方式
Feb 10 Python
Python 如何安装Selenium
May 06 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
让这部DC动画新作刷新你的认知
2020/03/03 欧美动漫
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
js 设置缓存及获取设置的缓存
2014/05/08 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
JS排序算法之冒泡排序,选择排序与插入排序实例分析
2017/12/13 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
Python tkinter实现日期选择器
2021/02/22 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
教师岗位职责范本
2013/12/29 职场文书
美德好少年事迹材料
2014/01/19 职场文书
优秀员工评语
2014/02/10 职场文书
建设工地安全标语
2014/06/07 职场文书
房屋所有权证明
2014/10/20 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL
JavaScript中reduce()的用法
2022/05/11 Javascript
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android