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实现冒泡,插入,选择排序简单实例
Aug 18 Python
跟老齐学Python之数据类型总结
Sep 24 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
Apr 26 Python
Python中and和or如何使用
May 28 Python
用python写爬虫简单吗
Jul 28 Python
Python数据可视化常用4大绘图库原理详解
Oct 23 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 20 Python
python之django路由和视图案例教程
Jul 26 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
杏林同学录(二)
2006/10/09 PHP
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
nodejs操作mysql实现增删改查的实例
2017/05/28 NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
vue-test-utils初使用详解
2019/05/23 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
基于JavaScript实现控制下拉列表
2020/05/08 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
python里对list中的整数求平均并排序
2014/09/12 Python
python中time、datetime模块的使用
2020/12/14 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
关于VPN
2012/06/10 面试题
行政专员的岗位职责
2014/03/10 职场文书
三方合作协议书范本
2014/04/18 职场文书
广播体操口号
2014/06/18 职场文书
县委常委班子对照检查材料思想汇报
2014/09/28 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
Python Django获取URL中的数据详解
2021/11/01 Python