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 获取新浪微博的最新公共微博实例分享
Jul 03 Python
收藏整理的一些Python常用方法和技巧
May 18 Python
Python使用Redis实现作业调度系统(超简单)
Mar 22 Python
解决uWSGI的编码问题详解
Mar 24 Python
Python实现的归并排序算法示例
Nov 21 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
May 16 Python
TFRecord格式存储数据与队列读取实例
Jan 21 Python
解决Keras自带数据集与预训练model下载太慢问题
Jun 12 Python
python 读取.nii格式图像实例
Jul 01 Python
Python模拟登录和登录跳转的参考示例
Oct 30 Python
pytorch加载语音类自定义数据集的方法教程
Nov 10 Python
linux系统下pip升级报错的解决方法
Jan 31 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
Views rows style模板重写代码
2011/05/16 PHP
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
PHP+Memcache实现wordpress访问总数统计(非插件)
2014/07/04 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
PHP判断JSON对象是否存在的方法(推荐)
2016/07/06 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
xmlHTTP实例
2006/10/24 Javascript
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
jQuery Password Validation密码验证
2016/12/30 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
VUE2实现事件驱动弹窗示例
2017/10/21 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
Python最长公共子串算法实例
2015/03/07 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
基于python实现从尾到头打印链表
2019/11/02 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
CSS实现定位元素居中的方法
2015/06/23 HTML / CSS
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
收银员的岗位职责范本
2014/02/04 职场文书
置业顾问岗位职责
2014/03/02 职场文书
联谊活动总结范文
2015/05/09 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书