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去除文件中空格、Tab及回车的方法
Apr 12 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 Python
python 寻找离散序列极值点的方法
Jul 10 Python
Python-接口开发入门解析
Aug 01 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
Python 面向对象部分知识点小结
Mar 09 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 Python
python实现无边框进度条的实例代码
Dec 30 Python
python spilt()分隔字符串的实现示例
May 21 Python
Python 恐龙跑跑小游戏实现流程
Feb 15 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(8) php 数组
2010/03/05 PHP
php计算指定目录下文件占用空间的方法
2015/03/13 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
PHP操作Redis常用技巧总结
2018/04/24 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
php实现微信企业转账功能
2018/10/02 PHP
PHP实现简单的计算器
2020/08/28 PHP
网上抓的一个特效
2007/05/11 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
javascript闭包的使用之按钮切换功能
2018/08/30 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
2018/10/29 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
python图像处理之镜像实现方法
2015/05/30 Python
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
2018/04/02 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
宿舍打麻将检讨书
2014/01/24 职场文书
医学专业应届生的自我评价
2014/02/28 职场文书
个人委托书格式
2014/04/04 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
安全承诺书格式
2014/05/21 职场文书
会议室标语
2014/06/21 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
股东授权委托书范本
2014/09/13 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
护士自荐信范文
2015/03/25 职场文书
唐山大地震的观后感
2015/06/05 职场文书
Python学习之os包使用教程详解
2022/03/21 Python