Python使用xlm库爬取信息

2023-11-10 08:20
文章标签 python 使用 信息 xlm

本文主要是介绍Python使用xlm库爬取信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 使用步骤
    • 1.引入库
    • 2.下级数据


前言

记录第一次爬虫记录,以京客隆超市店铺信息为目标,拿到店铺的全部信息,并生成excel表格
在这里插入图片描述


使用步骤

1.引入库

在爬取网站信息是首先我们要了解该页面的组成,了解该页面的下级分类,找到你所需要的元素,通过xpath定位来获取页面的信息,需要一定的WEb元素定位的知识,只有找到正确的位置才能进行下面的操作,基本操作就是只要用到url,就设置伪装头,然后解析页面源码,在通过xpath获得文本

这里用到etree.HTML方法把html的文本内容解析成html对象

在这里插入图片描述

import requests   
import pandas as pd
from lxml import etreebaseUrl ='http://www.jkl.com.cn/cn/shop.aspx'  # 爬取页面的数据
heade ={
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'
}  # 伪装头信息
# 1 首先拿取城区信息
res =requests.get(url=baseUrl,headers=heade).text   #   设置变量接受 基础页的响应数据
# print(res.text)
tree = etree.HTML(res)   # 设置变量获得 解析数据
get_list= tree.xpath('//div[@class="infoLis"]//@href')   # 设置变量 通过xpath定位拿到我们所需的城区列表的路径
# print(get_list)
for qu_list in get_list: # 遍历列表,拿到每个区的地址get_url_qu = 'http://www.jkl.com.cn/cn/' + qu_list   # 拼接网址 ,a为单个分类的路径# print(get_url_qu)res2 = requests.post(url=get_url_qu,headers=heade).text  # 获得区列表下的响应数据tree1 = etree.HTML(res2)  # 解析 数据# print(tree1)city_shop_name = tree1.xpath('//span[@class="con01"]/text()')city_shop_dis = tree1.xpath('//*[@class="con02"]/text()')city_shop_phone = tree1.xpath('//span[@class="con03"]/text()')city_shop_time = tree1.xpath('//span[@class="con04"]/text()')# print(city_shop_phone)name_list=[]for name in city_shop_name:  # 通过循环去除空格,获得列表数据new_name = name.strip()# print(new_name)name_list.append(new_name)# print(name_list)file = pd.DataFrame({'店名':name_list, '地址':city_shop_dis, '电话':city_shop_phone, '营业时间':city_shop_time})file.to_csv('E:/店铺信息2.csv', index=False, header=0, mode='a', encoding='ANSI')

这样就可以获的每个城区下的店铺信息,但我们发现朝阳区的下级目录,不是一夜有多页,而我们写的程序只能获得单页的数据
在这里插入图片描述
解决这个问题只要关注这个部分,通过点击下一页我们会发现这2个数据在变,其他数据不变,把这2个数据通过字典键值队形式代入即可
在这里插入图片描述

2.下级数据

接上:

 if get_url_qu == 'http://www.jkl.com.cn/cn/shopLis.aspx?id=865':for i in range(2, 4):  # 已经拿到第一页数据data = {'__EVENTTARGET': 'AspNetPager1','__EVENTARGUMENT': i}html = requests.post(url=get_url_qu, headers=heade, data=data).text  # 获得页面html信息parsing = etree.HTML(html)  # 解析city_shop_name = parsing.xpath('//span[@class="con01"]/text()')city_shop_dis = parsing.xpath('//*[@class="con02"]/text()')city_shop_phone = parsing.xpath('//span[@class="con03"]/text()')city_shop_time = parsing.xpath('//span[@class="con04"]/text()')name_list = []for name in city_shop_name:  # 通过循环去除空格,获得列表数据new_name = name.strip()# print(new_name)name_list.append(new_name)file = pd.DataFrame({'店名': name_list, '地址': city_shop_dis, '电话': city_shop_phone, '营业时间': city_shop_time})file.to_csv('E:/店铺信息2.csv', index=False, header=0, mode='a', encoding='ANSI')

得到的数据如下,保存的csv的文件,改下后缀就可以得到你想要的文件
在这里插入图片描述

这篇关于Python使用xlm库爬取信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/381464

相关文章

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬