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 fabric使用笔记
May 09 Python
详解Python如何生成词云的方法
Jun 01 Python
Python GUI Tkinter简单实现个性签名设计
Jun 19 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
python操作小程序云数据库实现简单的增删改查功能
Jun 06 Python
详解python播放音频的三种方法
Sep 23 Python
基于Tensorflow使用CPU而不用GPU问题的解决
Feb 07 Python
Python文字截图识别OCR工具实例解析
Mar 05 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
Jul 31 Python
python实现简单遗传算法
Sep 18 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
python3+PyQt5+Qt Designer实现界面可视化
Jun 10 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调用mysql存储过程
2007/02/14 PHP
php header()函数使用说明
2008/07/10 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
使用phpQuery获取数组的实例
2017/03/13 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
javascript 图片上传预览-兼容标准
2009/06/01 Javascript
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
删除节点的jquery代码
2014/01/13 Javascript
JsRender实用入门教程
2014/10/31 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
bootstrap读书笔记之CSS组件(上)
2016/10/17 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
详解vue 命名视图
2019/08/14 Javascript
ant design vue datepicker日期选择器中文化操作
2020/10/28 Javascript
Vue 3自定义指令开发的相关总结
2021/01/29 Vue.js
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
python网络编程学习笔记(一)
2014/06/09 Python
Python中的条件判断语句基础学习教程
2016/02/07 Python
详解Python异常处理中的Finally else的功能
2017/12/29 Python
python 实现绘制整齐的表格
2019/11/18 Python
python网络编程之五子棋游戏
2020/05/14 Python
Python调用shell cmd方法代码示例解析
2020/06/18 Python
俄罗斯外国汽车和国产汽车配件网上商店:Движком
2020/04/19 全球购物
什么是反射
2012/03/17 面试题
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
材料加工工程求职信
2014/02/19 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
工人先进事迹材料
2014/12/26 职场文书
检讨书大全
2015/01/27 职场文书
初中政治教师教学反思
2016/02/23 职场文书
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python