python抓取某汽车网数据解析html存入excel示例
时间:2023-11-02 16:46:35
1、某汽车网站地址
2、使用firefox查看后发现,此网站的信息未使用json数据,而是简单那的html页面而已
3、使用pyquery库中的PyQuery进行html的解析
页面样式:
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,解析html,excel
0
投稿
猜你喜欢
SQL语句操作主从关系表
2011-06-19 13:19:05
python是先运行metaclass还是先有类属性解析
2022-02-10 23:24:48
Python decimal模块的使用示例详解
2023-02-13 15:49:52
Opencv实现眼睛控制鼠标的实践
2023-07-04 11:21:52
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2021-08-24 03:26:17
MySQL中使用SHOW PROFILE命令分析性能的用法整理
2024-01-13 00:14:41
windows系统Tensorflow2.x简单安装记录(图文)
2023-02-22 04:41:23
Python的Socket编程过程中实现UDP端口复用的实例分享
2022-07-03 21:59:56
python opencv 简单阈值算法的实现
2023-04-04 04:23:03
信息分类是为了更好的索引
2010-02-04 17:51:00
MSSQL段落还原脚本,SQLSERVER段落脚本
2024-01-22 14:48:15
解读ASP.NET 5 & MVC6系列教程(2):初识项目
2023-06-28 02:10:47
Python常见数据类型转换操作示例
2022-11-20 19:13:05
php结合js实现点击超链接执行删除确认操作
2023-11-15 03:30:51
python+Selenium自动化测试——输入,点击操作
2023-08-09 07:20:50
matplotlib交互式数据光标实现(mplcursors)
2022-05-02 14:11:30
python基础知识之索引与切片详解
2023-11-30 03:03:52
vue button的@click方法无效钩子函数没有执行问题
2024-06-05 10:02:51
nodejs 的 session 简单使用
2024-05-11 09:51:19
ubuntu系统中安装mysql5.6(通过二进制)
2024-01-17 01:19:28