[ Python ] 爬虫类库学习之 xpath,爬取彼岸图网的 小姐姐 图片
安装:pip install lxml
实例化一个etree
对象
from lxml import etree
- 1、将本地的
html
文档中的源码数据加载到etree
对象中
etree.parse(filePath)
- 2、可以将从互联网上获取的源码数据加载到该对象中
page_text = requests.get(url, headers=headers).textetree.HTML('page_text')
xpath
表达式
/
:表示的是从根节点开始定位,表示的是一个层级。
tree = etree.parse('test.html') # 加载 html 文件tree.xpath('/html/body/div') # 获取 body 中的 div
//
:表示的是多个层级。可以表示从任意位置开始定位。
tree = etree.parse('test.html')tree.xpath('/html//div') # 获取 body 中的 divtree.xpath('//div') # 获取 body 中的 div
- 属性定位
//tag[@attrName="attrVaLue"]tree = etree.parse('test.html')tree.xpath('//div[@class="song"]') # 获取 body 中 class=“song” 的 div
- 索引定位
//div[@class=" song"]/p[3] # 索引是从1开始的。tree = etree.parse('test.html')tree.xpath('//div[@class="song"]//li[5]/a/text()')tree.xpath('//li[7]//text()') # 获取第七个 li 标签中的所有文本
- 获取标签之间的文本
/text() # 获取的是标签中直系的文本内容
//text() # 标签中非直系的文本内容(所有的文本内容)tree = etree.parse('test.html')tree.xpath('//div[@class="song"]//li[5]/a/text()')tree.xpath('//li[7]//text()')
- 获取属性
/@attrNametree = etree.parse('test.html')tree.xpath('//div[@class="song"]/img/@src') # 获取 img 的 src 属性
二手房名称
- 爬取 58同城 北京在售二手房名称
- 爬取链接:
https://bj.58.com/ershoufang/
from lxml import etree
import requestsif __name__ == '__main__':url = 'https://bj.58.com/ershoufang/'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}page_text = requests.get(url, headers=headers).texttree = etree.HTML(page_text)li_list = tree.xpath('//ul[@class="house-list-wrap"]/li')fp = open('二手房名称.text', 'w', encoding='utf-8')for li in li_list:# 局部解析title = li.xpath('./div[2]/h2/a/text()')[0]print(title)fp.write(title + '\n')print('数据爬取结束!')
小姐姐
- 爬取 彼岸图网 的小姐姐图片
- 爬取链接:
http://pic.netbian.com/4kmeinv/
from lxml import etree
import requests
import osif __name__ == '__main__':url = 'http://pic.netbian.com/4kmeinv/'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}response = requests.get(url, headers=headers)# 手动设置响应数据的编码格式# response.encoding='utf-8'page_text = response.texttree = etree.HTML(page_text)li_list = tree.xpath('//div[@class="slist"]/ul/li')if not os.path.exists('./彼岸图网'):os.mkdir('./彼岸图网')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')img_data = requests.get(img_src, headers=headers).contentimg_path = './彼岸图网/' + img_namewith open(img_path, 'wb') as fp:fp.write(img_data)print(img_name, '爬取成功!')print('数据爬取结束!')
城市名
- 爬取所有城市名
- 爬取链接:
https://www.aqistudy.cn/historydata/
from lxml import etree
import requestsif __name__ == '__main__':url = 'https://www.aqistudy.cn/historydata/'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}response = requests.get(url, headers=headers)page_text = response.texttree = etree.HTML(page_text)# 解析热门城市,所有对应城市的 a 标签# //div[@class="bottom"]/ul/li/ 热门城市 a 标签的层级关系# //div[@class="bottom"]/ul/div[2]/li/a 热门城市 a 标签的层级关系a_list = tree.xpath('//div[@class="bottom"]/ul/li/a | //div[@class="bottom"]/ul/div[2]/li/a')all_city_name = []for a in a_list:city_name = a.xpath('./text()')[0]all_city_name.append(city_name)print(len(all_city_name), '\n', all_city_name)print('数据爬取结束!')
来源:爬虫开发入门丨老男孩IT教育
[ Python ] 爬虫类库学习之 xpath,爬取彼岸图网的 小姐姐 图片相关推荐
- Python爬虫利用18行代码爬取虎牙上百张小姐姐图片
Python爬虫利用18行代码爬取虎牙上百张小姐姐图片 下面开始上代码 需要用到的库 import request #页面请求 import time #用于时间延迟 import re #正则表达式 ...
- 爬取彼岸图网4k图片
爬取彼岸图网高清美女图片 代码如下
- Python网络爬虫8 - 爬取彼岸图网美图
彼岸图网收集了大量美图,是个不错的爬取对象.话不多说,直接上图. 分析站点 分类列表 爬取之前,自然要分析一波,这个站点的框架比较简单,从分类着手,共包含12个分类项. 4K人物 4K动漫 4K动物 ...
- Python新手爬虫训练小项目《爬取彼岸图网》(超详细讲解版)
Python新手爬虫训练小项目<爬取彼岸图网>(超详细讲解版) 这是我的第一篇文章,作为一名新手爬虫,这个算是我这几天来的努力成果,虽然代码寥寥几行但花费了大半天,新手上路还是不能只看视频 ...
- python爬虫爬取彼岸图网图片
python爬虫爬取彼岸图网图片 话不多说,直接上代码! import requests from PIL import Image from io import BytesIO import re ...
- 用Python爬取彼岸图网图片
用Python爬取彼岸图网图片 *使用了 四个模块 import time import requests from lxml import etree import os 没有的话自行百度安装. ...
- 【Python】爬虫(Xpath):批量爬取彼岸图网4K图(非真正4K)
因为真正的4K图需要登录,并且登录后一天也就只能下载一张,所以就只解析爬取了内容页的高清图片(1200*633左右) 代码实现了我目前所能想到的用户骚操作的判定,例如选择的类目不在这个网站内, 或者这 ...
- python爬取贴吧所有帖子-Python爬虫实例(一)爬取百度贴吧帖子中的图片
程序功能说明:爬取百度贴吧帖子中的图片,用户输入贴吧名称和要爬取的起始和终止页数即可进行爬取. 思路分析: 一.指定贴吧url的获取 例如我们进入秦时明月吧,提取并分析其有效url如下 ?后面为查询字 ...
- 【爬虫】关于爬取彼岸图网4K壁纸的分析
目标地址 网络绝大部分所爬取的壁纸URL类似这样: https://pic.netbian.com/uploads/allimg/180315/110404-1521083044b19d.jpg 然而 ...
最新文章
- python使用matplotlib可视化堆叠的直方图(stacked histogram plot)、多个类别的数据在直方图区间层面累积堆叠起来
- vue的路由与es6的import, export
- CxImage图像处理类库说明3(转载)
- ZYNQ UARTLite接收不定长数据
- UVA 1329——Corporative Network
- java web快速入门_Web安全快速入门
- C语言scanf跳出循环的问题
- LeetCode Count of Smaller Numbers After Self
- 天行数据API智能机器人接口
- Linux部署东方通TongWeb7
- JavaScript---轮播图片完整代码
- seaborn关联图表之折线图和散点图
- STM32MP157移植Qt5.12.10
- 06-适配器模式Quarkus实现
- HDU 6438-Buy and Resell
- 解决CSDN上传资源出现报错:“该资源已存在,请重新上传”
- Conflux CTO伍鸣博士应邀出席金色沙龙
- Mac电脑如何实现Word一键转PPT
- 写一封给36岁沈阳出生女性名字叫植瑶的人一封情书
- 【CC】| 创建三维模型教程