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中对元组和列表按条件进行排序的方法示例
Nov 10 Python
利用Python破解斗地主残局详解
Jun 30 Python
Python正确重载运算符的方法示例详解
Aug 27 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
关于python写入文件自动换行的问题
Jun 23 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
Jul 04 Python
python如何将多个PDF进行合并
Aug 13 Python
django 实现简单的插入视频
Apr 07 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
python三引号如何输入
Jul 06 Python
Python Serial串口基本操作(收发数据)
Nov 06 Python
python爬虫快速响应服务器的做法
Nov 24 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
PHP闭包(Closure)使用详解
2013/05/02 PHP
老版本PHP转义Json里的特殊字符的函数
2015/06/08 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
如何在Web页面上直接打开、编辑、创建Office文档
2007/03/12 Javascript
JScript的条件编译
2007/05/29 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
JavaScript中使用typeof运算符需要注意的几个坑
2014/11/08 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
js弹出框、对话框、提示框、弹窗实现方法总结(推荐)
2016/05/31 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
python使用range函数计算一组数和的方法
2015/05/07 Python
python实现基本进制转换的方法
2015/07/11 Python
python中WSGI是什么,Python应用WSGI详解
2017/11/24 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
详解Python的三种拷贝方式
2020/02/11 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
CSS3打造百度贴吧的3D翻牌效果示例
2017/01/04 HTML / CSS
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
Mountain Warehouse澳大利亚官网:欧洲家庭户外品牌倡导者
2016/11/20 全球购物
意大利在线药房:Farmacia Loreto Gallo
2019/08/09 全球购物
应届毕业生个人求职信范文
2014/01/29 职场文书
工会工作个人总结
2015/03/03 职场文书
工程催款通知书
2015/04/17 职场文书
六一儿童节致辞
2015/07/31 职场文书
2016年清明节网上祭英烈活动总结
2016/04/01 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
postgres之jsonb属性的使用操作
2021/06/23 PostgreSQL
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL