欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

爬虫(三)笔记

程序员文章站 2024-01-27 17:05:40
...

正则表达式

常用正则表达式的方法:

  • re.compile(编译)
  • pattern.match(从头找一个)
  • pattern.search(找一个)
  • pattern.findall(找所有)
  • pattern.sub(替换)

正则使用的注意点

  • re.findall(“a(.*?)b”,“str”),能够返回括号中的内容,括号前后的内容起到定位和过滤的效果
  • 原始字符串r 待匹配字符串中有反斜杠的时候,使用r ,能够忽视反斜杠带来的转义的效果
  • 点号默认情况匹配不到\n
  • ‘\s’能够匹配空白字符,不仅仅包含空格,还有’\t|\r|\n’

xpath和lxml类库

什么是xpath :
xpath 是一门在HTML\XML,文档中查找信息的语言,可用来在HTML\XML文档中对元素和属性进行遍历

xpath学习重点

  • 使用xpath helper 或者是chrome 中的copy xpath 都是从element中提取的数据,但是爬虫获取的是url 对应的响应,往往和element中不一样

  • 获取文本

    • ‘a/text()’ 获取a 下的文本
    • ‘a//text()’ 获取a 下的所有标签的文本
    • ‘//a[text()=‘下一页’]’ 选择文本为下一页三个字的a标签
  • ‘@符号’

  • ‘a/@href’
    -’//ul[@id="."]’

  • ‘//’

  • 在xpath开始的时候表示从当前html 中任意位置开始选择

  • ‘li//a’ 表示li下的任何一个标签

爬虫(三)笔记
爬虫(三)笔记
爬虫(三)笔记![在这里插入图片描述](https://img-blog.csdnimg.cn/20200516222424577.JPG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjQ4NTg0Nw==,size_16,color_FFFFFF,t_70

Lxml库

使用入门
  • 导入lxml 的etree 库
  from lxml import etree
  • 利用etree.HTML ,将字符串转化为Element对象
  • Element 对象具有xpath的方法
html =etree.HtML(text)
html.xpath("***")
lxml 使用注意点
  • lxml 能够修正HTML 代码,但是可能会改错了

    • 使用etree.tostring 观察修改后的html 的样子,根据修改后的进行写xpath
  • 提取页面数据的思路

  • 先分组,取到一个包含分组标签的列表

  • 遍历 ,取其中的每一组进行数据的提取,不会造成数据的对应错乱