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之PyUnit单元测试实例
Oct 11 Python
用python 制作图片转pdf工具
Jan 30 Python
总结网络IO模型与select模型的Python实例讲解
Jun 27 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 Python
python scipy卷积运算的实现方法
Sep 16 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
Apr 10 Python
Python unittest单元测试框架实现参数化
Apr 29 Python
python使用多线程查询数据库的实现示例
Aug 17 Python
基于python实现复制文件并重命名
Sep 16 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.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
2014/06/23 PHP
php使用PDO方法详解
2014/12/27 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
Jquery带搜索框的下拉菜单
2013/05/06 Javascript
IE8的JavaScript点击事件(onclick)不兼容的解决方法
2013/11/22 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
javascript中对变量类型的判断方法
2015/08/09 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
JS图片预加载插件详解
2017/06/21 Javascript
jQuery实现模糊搜索功能的方法分析
2018/06/29 jQuery
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
基于webpack4.X从零搭建React脚手架的方法步骤
2018/12/23 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
Python引用类型和值类型的区别与使用解析
2017/10/17 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
python批量解压zip文件的方法
2019/08/20 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
毕业生就业自荐书
2013/12/15 职场文书
通信研究生自荐信
2014/02/01 职场文书
股东出资证明书(正规版)
2014/09/24 职场文书
导游欢送词
2015/01/31 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
幼师自荐信范文
2015/03/06 职场文书
小学思品教学反思
2016/02/20 职场文书
python cv2图像质量压缩的算法示例
2021/06/04 Python
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫