我是靠谱客的博主 魁梧皮带,最近开发中收集的这篇文章主要介绍Python使用xlm库爬取信息前言使用步骤,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

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


前言

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


使用步骤

1.引入库

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

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

在这里插入图片描述

import requests
import pandas as pd
from lxml import etree
baseUrl ='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库爬取信息前言使用步骤的全部内容,希望文章能够帮你解决Python使用xlm库爬取信息前言使用步骤所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部