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库爬取信息相关推荐
- python使用requests库爬取淘宝指定商品信息
python使用requests库爬取淘宝指定商品信息 在搜索栏中输入商品 通过F12开发者工具抓包我们知道了商品信息的API,同时发现了商品数据都以json字符串的形式存储在返回的html内 解析u ...
- Python基于BeautifulSoup4库爬取亚马逊网页
引言 我写的这个爬虫非常的简单,没有什么难的逻辑思维,只是简单运用BeautifulSoup进行爬取,相信初学者都可以看懂,就是代码写的比较乱,因为我也是初学者....可能你没有耐心看完,我会尽量一部 ...
- 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xa)的解决方法【华为云分享】
[写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...
- 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xaf\x8c\xe7\x9)的解决方法
[写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...
- Python爬虫根据公司名称爬取信息并保存为json格式的txt文件qcc
使用BeautifulSoup 根据公司名称来爬取企查查网站中该公司的详细信息 本篇文章主要参考了BeautifulSoup 根据输入的公司名称来爬取公司的详细信息 所提供的代码,后续根据自己的需求对 ...
- 使用Python的requests库爬取网页表情包
一.目标网站 喜羊羊QQ表情,可爱的懒羊羊搞笑图片 二.开发思路 安装项目所需环境 导入所需的类库 定义一个函数用来获取图片 a. 获取网页源代码 b. 获取源代码中所有的图片 c. 筛选出目标图片 ...
- python使用beautifulsoup4库爬取酷狗的付费榜
-------- 已失效------------------- 声明:本文仅为技术交流,请勿用于它处. 小编经常在网上听一些音乐但是有一些网站好多音乐都是付费下载的正好我会点爬虫技术,空闲时间写了一份 ...
- 通过python爬虫mechanize库爬取本机的ip地址
需求分析 最近,各平台更新的ip属地功能非常火爆,因此呢,也出现了许多新的网络用语,比如说"xx加几分","xx扣大分"等等,非常的有趣啊 可是呢,最近一个小伙 ...
- 使用python的requests库爬取微信公众号文章中的图片
1.首先导入我们需要的库: import requests from lxml import etree import os 以某篇文章为例,复制该文章连接: 2.使用requests库获取该网址的响 ...
- python获取网页json返回空_Python用requests库爬取返回为空的解决办法
首先介紹一下我們用360搜索派取城市排名前20. 我们爬取的网址:https://baike.so.com/doc/24368318-25185095.html 我们要爬取的内容: html字段: r ...
最新文章
- 小米手机 DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs
- PHP 中提示undefined index如何解决(多种方法)
- 零基础学习前端——html5
- golang 中的sort 包
- 实现 Java 本地缓存
- 【spring boot】spring boot @ConditionalOnxxx相关注解总结
- 「澳洋主数据项目」主数据促企业变革
- mysql查看binlog日志内容
- JavaScript语言精粹笔记
- pandas根据索引删除dataframe列
- Even better, if you don’t want to answer and
- [Java] 蓝桥杯ALGO-148 算法训练 5-1最小公倍数
- Windows API中文件操作函数的介绍
- C# WPF中DataGrid的数据绑定(Binding)
- linux怎么看本机ip,linux下查看本机IP的两种方法
- linux无线蓝牙鼠标失效,无线蓝牙鼠标失灵怎么办 无线蓝牙鼠标失灵解决方法【详解】...
- 金山WPS2018安卓实习面试经历
- LeetCode刷题指南
- 三、Echart图表 之 X轴(xAxis)与 Y轴(yAxis)配置项大全
- linux系统进程有哪几种主要状态,Linux 进程状态详解