lxml结合xpath语法实例一(数据提取)

我本人比较喜欢蜡笔小新,这个实例批量下载蜡笔小新图片

源码分析:所有图片包含在class为searchbqppdiv tagbqppdiv的div下的a标签的src属性中

思路:获取源码,提取数据,下载图片

目标地址:https://www.fabiaoqing.com/

requests+lxml 只提取一页的数据

import requests,lxml
images_url=‘https://www.fabiaoqing.com/search/search/keyword/%E8%9C%A1%E7%AC%94%E5%B0%8F%E6%96%B0/type/bq/page/1.html‘
head={‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36‘}
req_url_images=requests.get(url=images_url,headers=head)
req_url_images.text

from lxml import etree
html_images=etree.HTML(req_url_images.text)
images_get="//div[@class=‘searchbqppdiv tagbqppdiv‘]//img/@data-original"
images_last=html_images.xpath(images_get)
#用ulllib自带的保存文件的方式去保存
from urllib import request

#索引出序列用来做图片名字
Indexes=1
for images_save in images_last:
        #这个网站的图片都是以jpg结尾比较简单
        request.urlretrieve(images_save,r"image/"+‘%s.jpg‘%Indexes)
        Indexes+=1

urllib+lxml

from urllib import request
from lxml import etree
images_url=‘https://www.fabiaoqing.com/search/search/keyword/%E8%9C%A1%E7%AC%94%E5%B0%8F%E6%96%B0/type/bq/page/1.html‘
head={‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36‘}
new_way=request.Request(url=images_url,headers=head)
req_url_images=request.urlopen(new_way)

html_images=etree.HTML(req_url_images.read().decode(‘utf-8‘))

images_get="//div[@class=‘searchbqppdiv tagbqppdiv‘]//img/@data-original"
images_last=html_images.xpath(images_get)
#用ulllib自带的保存文件的方式去保存

#索引出序列用来做图片名字
Indexes=1
for images_save in images_last:
        #这个网站的图片都是以jpg结尾比较简单
        request.urlretrieve(images_save,r"image/"+‘%s.jpg‘%Indexes)
        Indexes+=1

提取多页的数据requests+lxml

pages = 1
Indexes = 1
while pages < 11:
    import requests, lxml

    images_url = ‘https://www.fabiaoqing.com/search/search/keyword/%E8%9C%A1%E7%AC%94%E5%B0%8F%E6%96%B0/type/bq/page/‘ + ‘%s.html‘ % pages
    head = {
        ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36‘}
    req_url_images = requests.get(url=images_url, headers=head)
    req_url_images.text
    pages += 1
    from lxml import etree

    html_images = etree.HTML(req_url_images.text)
    images_get = "//div[@class=‘searchbqppdiv tagbqppdiv‘]//img/@data-original"
    images_last = html_images.xpath(images_get)
    # 用ulllib自带的保存文件的方式去保存
    from urllib import request

    # 索引出序列用来做图片名字

    for images_save in images_last:
        # 这个网站的图片都是以jpg结尾比较简单
        request.urlretrieve(images_save, r"image/" + ‘%s.jpg‘ % Indexes)
        print(‘已经爬取了%s张‘ % Indexes)
        Indexes += 1

  

提取多页的数据urllib+lxml

from urllib import request
from lxml import etree
pages=1
Indexes=1
while pages<11:
        images_url=‘https://www.fabiaoqing.com/search/search/keyword/%E8%9C%A1%E7%AC%94%E5%B0%8F%E6%96%B0/type/bq/page/‘+‘%s.html‘%pages
        head={‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36‘}
        new_way=request.Request(url=images_url,headers=head)
        req_url_images=request.urlopen(new_way)

        html_images=etree.HTML(req_url_images.read().decode(‘utf-8‘))

        images_get="//div[@class=‘searchbqppdiv tagbqppdiv‘]//img/@data-original"
        images_last=html_images.xpath(images_get)
        #用ulllib自带的保存文件的方式去保存

        #索引出序列用来做图片名字
        count=1
        for images_save in images_last:
                # 这个网站的图片都是以jpg结尾比较简单
                request.urlretrieve(images_save,"image/"+‘%s.jpg‘%Indexes)
                print(‘已经爬取了%s张‘%Indexes)
                Indexes+=1
        pages+=1

  

原文地址:https://www.cnblogs.com/lcyzblog/p/11285962.html

时间: 2024-08-29 18:56:04

lxml结合xpath语法实例一(数据提取)的相关文章

Xpath语法与lxml库的用法

BeautifulSoup 已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法. 1.安装 pip install lxml 2. XPath语法 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历.XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 都构建于 XPath 表达之上. 选取节点: XPath 使用路径表达式在 X

非结构化数据与结构化数据提取----XPath与lxml类库

什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要我们自行定义. XML 被设计为具有自我描述性. XML 是 W3C 的推荐标准 W3School官方文档:http://www.w3school.com.cn/xml/index.asp XML 和 HTML 的区别 数据格式 描述 设计目标 XML Extensible Markup Langu

Python爬虫利器三之Xpath语法与lxml库的用法

前面我们介绍了 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法.如果大家对 BeautifulSoup 使用不太习惯的话,可以尝试下 Xpath. 参考文档: lxml python 官方文档 XPath语法参考 w3school 安装 pip install lxml 利用 pip 安装即可 XPath语法 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在

PHP实例————表单数据插入数据库及数据提取

网站在进行新用户注册时,都会将用户的注册信息存入数据库中,需要的时候再进行提取.今天写了一个简单的实例. 主要完成以下几点功能: (1)用户进行注册,实现密码重复确认,验证码校对功能. (2)注册成功后,将用户进行插入数据库中进行保存. (3)将数据库表中数据进行提取,并打印. 1.注册表单 在以前的几篇博客中,分享过注册及登录表单的代码.这次的代码,大致相同,只是略有变化.仅作为实例探讨 <html> <head> <title>注册页面</title>

[XPath/Python] XPath 与 lxml (二)XPath 语法

XPath 选取节点时使用的表达式是一种路径表达式.节点是通过路径(path)或者步(steps)来选取的. 本章使用以下 XML 文档作为示例. <?xml version="1.0" encoding="utf8"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</pr

PHP实例 表单数据插入数据库及数据提取 用户注册验证

网站在进行新用户注册时,都会将用户的注册信息存入数据库中,需要的时候再进行提取.今天写了一个简单的实例. 主要完成以下几点功能: (1)用户进行注册,实现密码重复确认,验证码校对功能. (2)注册成功后,将用户进行插入数据库中进行保存. (3)将数据库表中数据进行提取,并打印. 1.注册表单 在以前的几篇博客中,分享过注册及登录表单的代码.这次的代码,大致相同,只是略有变化.仅作为实例探讨 <html> <head> <title>注册页面</title>

【个人】爬虫实践,利用xpath方式爬取数据之爬取虾米音乐排行榜

实验网站:虾米音乐排行榜 网站地址:http://www.xiami.com/chart 难度系数:★☆☆☆☆ 依赖库:request.lxml的etree (安装lxml:pip install lxml) IDEA开发工具:PyCharm_2017.3 Python版本:Python3 期望结果:爬取出排行版歌名以及对应歌手 运行效果图: 音乐排行榜: 爬取数据结果图: 像这种简单的爬取就没必要使用Scrapy框架进行处理,是在有点大材小用,不过如果你刚开始学Scrapy的话,拿这些简单的练

网页解析库-Xpath语法

网页解析库 简介 除了正则表达式外,还有其他方便快捷的页面解析工具 如:lxml (xpath语法) bs4 pyquery等 Xpath 全称XML Path Language, 即XML路径语言,是一门在XML文档中查找信息的语言,同样也适用于HTML文档的搜索. 爬虫 我们需要抓取的只是某个网站或者应用的一部分内容 结构化 先有结构 再有数据 转化为字典处理(如:json => dict) 非结构化 html 正则 lxml bs4等去解析 安装: pip install beautifu

《爬虫学习》(四)(使用lxml,bs4库以及正则表达式解析数据)

1.XPath: XPath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历. 工具:扩展商店里搜索:XPath Helper(我是QQ浏览器) XPath的语法: 使用举例: 2. lxml库: lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据 下载:pip install lxml 基本使用:在lxml中使用xpath语法 3.bs4库的使用: 和 lxml 一