python数据解析——xpath爬取文字和图片
xpath解析:最常用且最便捷高效的一种解析方式,通用性。
- xpath解析原理:
- 1.实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中。
- 2.调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获。
- 环境的安装:
- pip install lxml
- 如何实例化一个etree对象:from lxml import etree
- 1.将本地的html文档中的源码数据加载到etree对象中:
etree.parse(filePath) - 2.可以将从互联网上获取的源码数据加载到该对象中
etree.HTML(‘page_text’) - xpath(‘xpath表达式’)
- 1.将本地的html文档中的源码数据加载到etree对象中:
- xpath表达式:
- /:表示的是从根节点开始定位。表示的是一个层级。
- //:表示的是多个层级。可以表示从任意位置开始定位。
- 属性定位://div[@class=‘song’] tag[@attrName=“attrValue”]
- 索引定位:索引从1开始的。
- 取文本:
- /text() 获取的是标签中直系的文本内容
- //text() 标签中非直系的文本内容(所有的文本内容)
- 取属性:
/@attrName ==>img/src
需求一:爬取58二手房信息 https://bj.58.com/ershoufang/
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import requests
from lxml import html
etree = html.etree
#需求:爬取58二手房中的房源信息
if __name__ == "__main__":headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}#爬取到页面源码数据url = 'https://bj.58.com/ershoufang/'page_text = requests.get(url=url,headers=headers).text#数据解析tree = etree.HTML(page_text)#存储的就是li标签对象li_list = tree.xpath('//div[@class="property"]/a')fp = open('58.txt','w',encoding='utf-8')for li in li_list:#局部解析title = li.xpath('./div[2]//h3/text()')[0] + li.xpath('./div[2]/div[2]/p/span/text()')[0] + "万"print(title)fp.write(title+'\n')
需求二:爬取4k网图片 http://pic.netbian.com/4kmingxing/
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#需求:解析下载图片数据 http://pic.netbian.com/4kmeinv/
import requests
from lxml import html
etree = html.etree
import os
if __name__ == "__main__":headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'}# 创建一个文件夹if not os.path.exists('./picLibs'):os.mkdir('./picLibs')url = 'http://pic.netbian.com/4kmingxing/index_%d.html'for pageNum in range(1,8):#对应页码的urlnew_url = format(url%pageNum)response = requests.get(url=new_url,headers=headers)page_text = response.text#数据解析:src的属性值 alt属性tree = etree.HTML(page_text)li_list = tree.xpath('//div[@class="slist"]/ul/li')for li in li_list:img_src = 'http://pic.netbian.com'+li.xpath('./a/img/@src')[0]img_name = li.xpath('./a/img/@alt')[0]+'.jpg'#通用处理中文乱码的解决方案img_name = img_name.encode('iso-8859-1').decode('gbk')# print(img_name,img_src)#请求图片进行持久化存储img_data = requests.get(url=img_src,headers=headers).contentimg_path = 'picLibs/'+img_namewith open(img_path,'wb') as fp:fp.write(img_data)print(img_name,'下载成功!!!')
python数据解析——xpath爬取文字和图片相关推荐
- Python爬虫:Xpath爬取网页信息(附代码)
Python爬虫:Xpath爬取网页信息(附代码) 上一次分享了使用Python简单爬取网页信息的方法.但是仅仅对于单一网页的信息爬取一般无法满足我们的数据需求.对于一般的数据需求,我们通常需要从一个 ...
- Python爬虫实战之爬取网站全部图片(一)
Python爬虫实战之爬取网站全部图片(二) Python爬虫实战之通过ajax获得图片地址实现全站图片下载(三) 一.获得图片地址 和 图片名称 1.进入网址之后 按F12 打开开发人员工具点击e ...
- python + selenium +pyquery 爬虫 爬取 1688详情图片 阿里巴巴详情图片 与标题 下载图片并进行压缩
python + selenium +pyquery 爬虫 爬取 1688详情图片 阿里巴巴详情图片 与标题 下载图片并进行压缩 用到的库和源码下载地址 需要用到chromedriver 包含wi ...
- python提取图片文字视频教学_Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)...
一.爬虫记得基本方法 1.1 爬虫概述 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使 ...
- python爬取文字和图片_Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)...
[toc] 一.爬虫记得基本方法 1.1 爬虫概述 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...
- python超详细零基础 bs4解析之爬取唯美图片
文章目录 前言 前言 本篇文章主要介绍使用bs4解析来爬取某网站上的唯美高清大图,涉及到的零碎知识较多,详细易懂,适合新手小白爬虫入门. 思路如下: ①拿到主页面的源代码,然后提取到子页面的链接地址h ...
- python爬虫:解决爬取文字时写入出现的NBSP(空格)现象
当我们爬取文字存储到txt文本时出现NBSP现在的解决方法.把空格去掉用str(remove).replace(u'\xa0', '')去解决 电影名称: 肖申克的救赎[NBSP] 电影名称: 霸王别 ...
- Python-爬虫(xpath数据解析,爬取信息实战)
文章目录 1.xpath常见筛选方式 谓语 2.爬取信息实战 1.xpath常见筛选方式 测试网页源代码 <!DOCTYPE html> <html lang="en&qu ...
- python爬取文字和图片_python爬虫--xpath结合re同时爬取文字与图片
还是老家的旅游网址:http://www.patour.cn/site/pananzxw/tcgl/index.html,将这些特产的图片及其介绍都爬取下来! 源码: 1 # -*- coding:u ...
最新文章
- 语义分割--Dilated Residual Networks 之转载
- 新买的电脑怎么装系统_如何装一台性价比的电脑主机——老程带你了解怎么装电脑...
- 《高性能JavaScript》第三章 DOM编程
- pcb 布线电容 影响延时_信号在PCB走线中传输时延
- dapr微服务.net sdk入门
- IntelliJ IDEA for Mac 如何在当前的普通Java项目中创建新的模块/添加模块/创建模块
- KMP算法的java实现
- pycharm中的settings没有latest version_k8s集群中pod镜像版本检查
- docker环境搭建redis-cluster集群(多台机器)
- golang 目录分隔符号_Golang 从0到1之任务提醒(一)
- AndroidStudio新建项目报错build failed
- 在consul上注册web服务
- 重庆北大青鸟校区【学员心声】:学习是我们前进的动力
- 计算机内图片怎么自定义排序,win10系统设置图片文件自定义排序的图文教程
- OAuth2.0的refresh token
- 学做智能车--电磁探究篇
- STRAIGHT特征提取算法学习
- JVM内存模型(一篇足以)
- HZNU2012图解
- Win10图片打开方式没有“Windows照片查看器”