对lxml库与beautifulsoup库的相关说明:

关于lxml库与beautifulsoup库,看俩者官方文档的开头介绍,都是“一个可以从HTML或XML文件中提取数据的Python库”。

在实际使用两者后,简单的感知是beautifulsoup库(美丽汤)确实在展示编码结构上有更好的可读性,操作也是容易上手;而lxml库有更快的速度响应,上手难度上其实也差不多,在熟悉了lxml库下xpath的信息定位提取后,阔能就不大会再用美丽汤了~


做中学实例——亚马逊电子书销售排行榜

亚马逊Kindle电子书销售排行Top100

站点地址:https://www.amazon.cn/gp/bestsellers/digital-text/116169071/ref=zg_bs_pg_1?ie=UTF8&pg=1


编码思路:

1:调库,包括lxml库和requests库;url地址,headers准备好后,发起request.get()请求,确定返回状态为200系;

2:对返回的网页编码文本,用etree.HTML()方法转为xml对象,之后就可以用.xpath方法进行标签(可以限定其属性)、内容(如文本)、标签属性值等的定位;

3:与美丽汤的.findAll()相似,xpath定位的返回内容也是在列表里,取一个输出确认内容(定位对了卟),之后就是拼接爬取内容,加入遍历xpath返回列表内容的for循环,以及爬取多页面的for循环;顺便再把多页面的url封装,用一个列表存起待爬取的所有url,在main主函数中预先调用(并定义个变量存起来叭~)


PS:在使用xpath定位文本内容时,有一些常用的语法规则,一个是 // 可以略写外层的标签路径(当目标标签唯一时才行,不唯一的话就定不着咯),相对的 / 就是一般的绝对路径写法了,在标签名称、属性相近的情况下只好用它写详细点了;

另一个是获取标签里的内容(文本)时,可以在标签后续 /text(),也可以选择续 .text;

还有就是获取指定路径下某个标签值时,标签后续 /@属性名 即可。

正式代码:

from lxml import etree  #调lxml库
import requests
headers = {'User-Agent': 'Mozilla/5.0 '}def url_list():  #封装url列表,备作多页面爬取urls=[]for i in range(1,3):  #共2页待爬的url='https://www.amazon.cn/gp/bestsellers/digital-text/116169071/ref=zg_bs_pg_2?ie=UTF8&pg='+str(i)urls.append(url)return urlsdef main():  #封装主函数urls=url_list()  #调用函数,获得url列表k=0             #计数编号for i in urls:   html=requests.get(i,headers=headers)tree=etree.HTML(html.text)  #用lxml库里的etree法子来解析~title=tree.xpath('//div[@class="a-section a-spacing-small"]/img/@alt') #xpath定位author=tree.xpath('//span[@class="a-size-small a-color-base"]/text()')for j in range(0,len(title)):       #单页内遍历content=str(k+1)+' : '+author[j]+'——'+title[j]  #拼接内容k=k+1  print(content)main()

爬虫入门实战系列(四):Amazon电子书销售排行榜爬取【Lxml库、Xpath语法熟悉】相关推荐

  1. Python网络爬虫数据采集实战(八):Scrapy框架爬取QQ音乐存入MongoDB

    通过前七章的学习,相信大家对整个爬虫有了一个比较全貌的了解 ,其中分别涉及四个案例:静态网页爬取.动态Ajax网页爬取.Selenium浏览器模拟爬取和Fillder今日头条app爬取,基本涵盖了爬虫 ...

  2. 《崔庆才Python3网络爬虫开发实战教程》学习笔记(4):解析库Xpath的使用方法总结

    本篇博文是自己在学习崔庆才的<Python3网络爬虫开发实战教程>的学习笔记系列,如果你也要这套视频教程的话,关注我公众号[小众技术],关注后回复[PYTHON],无套路免费送你一个学习大 ...

  3. python爬虫入门——QQ音乐歌手照片及歌曲列表爬取

    #刚入门,大佬莫入 #程序功能:输入歌手名称后,程序会生成一个Word文件,Word文件里包括歌手名称.照片和所有歌曲列表! import requests, time import math fro ...

  4. 爬虫入门经典(二十一) | 破解CSS加密之爬取大众点评

      大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  5. 【爬虫入门】【正则表达式】【同步】爬取人人车车辆信息1.0

    # 爬取人人车车车辆信息.from urllib.request import urlopen from urllib.error import HTTPErrorimport re, sqlite3 ...

  6. 爬虫入门经典(十) | 一文带你快速爬取网易云音乐

      大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  7. 爬虫入门,带你用30行代码爬取高清美女写真,附安装包+源码

    1.准备工作 1 高清壁纸:https://www.36992.com/girls/list-1.html 2 Python环境 Python3.9新特性: 字典"并集"运算符 类 ...

  8. python 喜马拉雅_Python爬虫入门教程14:喜马拉雅有声书音频爬取

    基本开发环境????Python 3.6 Pycharm 相关模块的使用????import requests import os 安装Python并添加到环境变量,pip安装需要的相关模块即可. 一 ...

  9. WebMagic爬虫入门教程(二)一个完整的爬取动漫之家的实例

    (一)前言 我的上一篇博客已经说明如何爬取某一个网页的动漫数据,这里重点说一下一个完整的爬虫实例. 和上一篇文章相比,多了的就是动画种类,日文名什么的. 推荐这个爬取博客的:http://blog.c ...

最新文章

  1. 线段树分治 ---- CF1217F - Forced Online Queries Problem(假离线 可撤销并查集 + 线段树分治)详解
  2. Swift基础--调用第三方OC项目
  3. C# 连接SQL数据库字符串
  4. 一起玩树莓派3+手把手带您入门树莓派(3000字+超详细图解版)
  5. [日常] DNS的迭代查询过程
  6. Android之Only fullscreen opaque activities can request orientation
  7. python的所有库_Python 常用库
  8. python的内存管理机制及调优手段_Python的内存管理机制及调优手段
  9. 计算机考研数学基础知识点,2019计算机考研数学复习:打好基础是必须的啊喂!...
  10. [css] 用CSS实现tab切换
  11. MeasureSpec学习 - 转
  12. js dojo 保存txt文件
  13. 27. Element nodeType 属性
  14. List集合去除重复对象及equals()、hashCode()方法的作用
  15. 【USACO 2.4】Fractions to Decimals(分数转小数)
  16. 基于SpringBoot的简单记账系统
  17. CVBS、VGA、HDMI、MIPI等8种视频接口详解
  18. 如何用Python开发QQ机器人
  19. Unity快速入门之四 - Unity模型动画相关
  20. 四、地址空间与内存分配

热门文章

  1. Android入门(一)——结构
  2. 第k短路 算法详解(图解)与模板(A* 算法)
  3. 【论文笔记】显著性信息辅助的视觉SLAM系统 SBAS: Salient Bundle Adjustment for Visual SLAM
  4. 全国计算机技术与软件专业技术资格(水平)考试-2023 年上半年 软件设计师 上午试卷(答案对照)
  5. Windows 如何打开和编辑.lnk文件
  6. linux 开机自启动 oracle
  7. 使用appium工具对漫画发表评论
  8. 犀牛脚本插件-获取选择对象长度-Python-几何对象长度-rhino脚本
  9. 双向链表和循环双向链表的基本操作
  10. 零基础EVE环境搭建:①EVE的下载与介绍