beautifulsoup网页爬虫解析_爬虫第三天——初识Xpath

解析神器Xpath:

1. 什么是Xpath

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快的被开发者采用来当作小型查询语言。
可以阅读该文档了解更多关于Xpath的知识。

2. Xpath解析网页的流程

  • 首先通过Requests库获取网页数据
  • 通过网页解析,得到想要的数据或者新的链接
  • 网页解析可以通过Xpath或者其它解析工具进行,Xpath在是一个非常好用的网页解析工具

v2-04b1374240439fe8e13074606e096fc8_b.jpg

3. 常用的网页解析

  • 正则表达式使用比较困难,学习成本较高
  • BeautifulSoup性能较慢,相对于Xpath较难,在某些特定场景下有用
  • Xpath使用简单,速度快(Xpath是lxml里面的一种),是抓取数据最好的选择

Xpath的使用:

1. 使用Xpath解析网页数据的步骤

  • 从lxml导入etree
  • 解析数据,返回xml结构
  • 使用.xpath()寻找和定位数据
from 

2. 获取Xpath的方法

  • 第一种方法:从浏览器直接复制
  • 首先在浏览器上定位到需要爬取的数据
  • 右键,点击“检查”,在“Elements”下找到定位到所需数据
  • 右键——Copy——Copy Xpath,即可完成Xpath的复制
  • 第二种方法:手写Xpath
  • 获取文本内容用 text()
  • 获取注释用 comment()
  • 获取其它任何属性用@xx,如:
    href
    src
    value
  • 想要获取某个标签下所有的文本(包括子标签下的文本),使用string
    如”< p>123< a>来获取我啊< /a>< /p>”,这边如果想要得到的文本为”123来获取我啊”,则需要使用string
  • starts-with 匹配字符串前面相等
  • contains 匹配任何位置相等

附录

Xpath教程

  • 阅读Xpath教程,掌握Xpath的基本知识

Xpath的基本使用

  • 阅读爬虫入门到精通-网页的解析(xpath),参考Xpath的使用方法
  • 阅读Python爬虫利器三之Xpath语法与lxml库的用法,了解更多Xpath的使用方法示例

正则表达式

  • 阅读Python正则表达式,了解正则表达式及其基本的语法
  • 阅读爬虫入门到精通-网页的解析(正则),学习使用正则表达式匹配网页数据

BeautifulSoup

  • 阅读Beautiful Soup 中文教程,了解使用BeautifulSoup解析网页的方法
  • 阅读Beautiful Soup 4.2.0 文档这篇BeautifulSoup的官方文档,了解其更加全面的用法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/490528.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全球知名大学课件下载地址汇总

本文集合了美国众多知名大学的网上课程课件&#xff0c;不用花一分钱就能获得知名大学的前沿知识&#xff01;聪明的同学早就收藏转发啦 美国大学课件下载地址汇总 1、加州大学伯克利分校http://webcast.berke…

C++将01数组转换为二进制对应的数值

假设有一个32维的01数组array&#xff0c;假设array的值为 01001010001011110100101000101111 如果需要将其转换为用该数组值代表的二进制所对应的数值&#xff0c;即通过该数组得到01001010001011110100101000101111这个int型数值&#xff08;int型有4字节&#xff0c;一共4…

机器人4.0时代来临!四大核心技术助推大规模商用部署

来源&#xff1a;北京物联网智能技术应用协会当前&#xff0c;全球机器人市场规模持续扩大&#xff0c;工业机器人市场增速稳定&#xff0c;服务机器人增速突出。2018 年&#xff0c;全球机器人市场规模达 298.2 亿美元&#xff0c; 2013-2018 年的平均增长率约为 15.1%。 在装…

Chapter2 MSP430硬件结构

1、总架构 MSP430单片机采用冯诺依曼结构&#xff0c;包含16位RISC CPU、存储器、片内外设、时钟系统、仿真系统以及数据总线和地址总线。 2、MSP430X CPU(CPUX) DB    AB          ALU位数 MSP430F1XX 16位  16位(最大寻址64KB) …

怎么用python编写个apk_新手用tkinter写了一个APK提取工具

[Python] 纯文本查看 复制代码""" author:qh datetime:2019-3-15 mood:<(*&#xffe3;▽&#xffe3;*)/ """ import os import base64 import requests import json import shutil import hashlib from tkinter import * from tkinter impo…

Matlab给Ansys助攻

大家好&#xff0c;今天二狗准备介绍一下如何利用matlab写一些简单的脚本去解决一些复杂的事情&#xff0c;比如为大型有限元软件Ansys服务&#xff08;类比&#xff09;包括数值模拟的前处理和后处理&#xff0c;都大有作为。用过Ansys&#xff08;没有Ctrlz&#xff09;的童鞋…

归并排序的时间复杂度为什么为nlogn

归并排序的递归过程如下&#xff0c;该递归树的高度为log2n&#xff08;计算过程&#xff1a;假设待排序的数组元素个数为n&#xff0c;设高度为x&#xff0c;x意味着n个元素需要连续二分x次才剩下1个元素&#xff0c;即n/2^x1&#xff0c;xlog2n&#xff09;&#xff0c;每一层…

reflection

function $f new ReflectionFunction(funcName);var_dump($f->getFileName());exit; method $func new ReflectionMethod(classname,function); var_dump($func->getFileName()); 转载于:https://www.cnblogs.com/fenle/p/5573841.html

python二分法查找算法_排序算法和二分法查找

请填充代码&#xff0c;使mySort()能使传入的参数按照从小到大的顺序显示出来。 function mySort() { var tags new Array(); for (var i 0; i < arguments.length; i) { tags.push(arguments[i]); } tags.sort(function sortNum(a, b) { return a - b; }); return tags; …

深度解读达芬奇架构:华为AI芯片的“秘密武器”

本文转自华为官网2019年6月&#xff0c;华为发布全新8系列手机SoC芯片麒麟810&#xff0c;首次采用华为自研达芬奇架构NPU&#xff0c;实现业界领先端侧AI算力&#xff0c;在业界公认的苏黎世联邦理工学院推出的AI Benchmark榜单中&#xff0c;搭载麒麟810的手机霸榜TOP3&#…

FGSM(Fast Gradient Sign Method)python实现

有现成的库cleverhans可以调用 https://github.com/cleverhans-lab/cleverhans 这个库是用tensorflow实现的&#xff0c;但也实现了pytorch版本 因为我调用的是pytorch版本&#xff0c;我接下来大概讲一下如何使用 他们给出了一个调用pytorch版本的例子&#xff1a; https…

记忆化搜索 codevs 2241 排序二叉树

codevs 2241 排序二叉树 ★ 输入文件&#xff1a;bstree.in 输出文件&#xff1a;bstree.out 简单对比时间限制&#xff1a;1 s 内存限制&#xff1a;128 MB 【问题描述】 一个边长为n的正三角形可以被划分成若干个小的边长为1的正三角形&#xff0c;称为单位三角形。 …

窥探当今AI芯片中的类脑模型

来源&#xff1a;脑人言撰文丨邓 磊&#xff08;加州大学-圣塔芭芭拉分校UCSB 博士后&#xff09;责编丨高茂森 Soma排版丨夏獭科学研究的动机&#xff0c;并非仅仅是出于能看到多酷炫的应用&#xff0c;而是因为我们尚有诸多未知世界需要探寻&#xff0c;这是一切应用的前提。…

mysql调优_MYSQL企业常用架构与调优经验分享

一、选择Percona Server、MariaDB还是MYSQL1、Mysql三种存储引擎MySQL提供了两种存储引擎&#xff1a;MyISAM和 InnoDB&#xff0c;MySQL4和5使用默认的MyISAM存储引擎。从MYSQL5.5开始&#xff0c;MySQL已将默认存储引擎从MyISAM更改为InnoDB。MyISAM没有提供事务支持&#xf…

shutdown-t-s3600定时关机

winr定时关机shutdown-t-s3600 单位 秒

pycharm无缘无故打开Nosetest

一个正常的代码&#xff0c;本来前几天可以正常run&#xff0c;突然有一天点击run之后不是运行程序&#xff0c;而是报错一堆&#xff1a; Launching Nosetest with arguments。。。 usage: _jb_nosetest_runner.py 。。。 _jb_nosetest_runner.py: error: unrecognized arg…

python按比例生成数据组_基于python中的一个值生成“正态分布”数据

通过施加总和temp100你介绍的依赖至少两个数据点之间&#xff0c;因此无法建立一套独立的采样随机数据点。 一个简单的例子&#xff1a; 想象一下投币。系统中的随机性正好是一个二进制结果&#xff0c;或1位。 想象一下两个硬币翻转。系统中的随机性恰好是两个二进制结果或2位…

SpringMVC学习--参数绑定

spring参数绑定过程 从客户端请求key/value数据&#xff0c;经过参数绑定&#xff0c;将key/value数据绑定到controller方法的形参上。springmvc中&#xff0c;接收页面提交的数据是通过方法形参来接收。而不是在controller类定义成员变更接收。 默认支持的类型直接在controll…

matlab与ie交互

clc clear ieactxserver(internetexplorer.application); ie.Navigate(网址); while ~strcmp(ie.readystate,READYSTATE_COMPLETE) pause(.01) end loginnameie.document.getElementById(输入用户名的LABEL的id); loginname.value用户名; passwordie.document.getElementById(输…

MySQL windows安装

https://www.cnblogs.com/winton-nfs/p/11524007.html