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 相关文章推荐
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 Python
python中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
web.py在模板中输出美元符号的方法
Aug 26 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
Python发展史及网络爬虫
Jun 19 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
如何使用python记录室友的抖音在线时间
Jun 29 Python
python/golang实现循环链表的示例代码
Sep 14 Python
Python图像处理之图像拼接
Apr 28 Python
Python必备技巧之字符数据操作详解
Mar 23 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的FTP学习(四)
2006/10/09 PHP
PHP入门速成教程
2007/03/19 PHP
mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
2010/03/21 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
JavaScript生成指定范围的时间列表
2018/03/19 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
node.js部署之启动后台运行forever的方法
2018/05/23 Javascript
echarts多条折线图动态分层的实现方法
2019/05/24 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
2019/08/27 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
python双向链表实现实例代码
2013/11/21 Python
python代码实现ID3决策树算法
2017/12/20 Python
python开发游戏的前期准备
2019/05/05 Python
python实现列表中最大最小值输出的示例
2019/07/09 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
Python SQLAlchemy库的使用方法
2020/10/13 Python
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
医德医风自我评价
2014/09/19 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
公务员考察材料
2014/12/23 职场文书
健康证明
2015/06/19 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
总结Python使用过程中的bug
2021/06/18 Python
基于JavaScript实现年月日三级联动
2021/06/22 Javascript