Python 爬虫教程 06
1.分析网站
第一步还是要先向网站发送请求,然后获得请求的内容:
1 | import requests |
然后开始解析网页源码,在浏览器中,要爬取的网站页面点击右键,然后选择 查看网页源代码 :
注意这幅图中左上角的链接https://www.spiderbuf.cn/static/images/beginner/1kwfkui2.jpg
。这条链接分成两部分来看:https://www.spiderbuf.cn
+ /static/images/beginner/1kwfkui2.jpg
也就是说,要爬取图片的话,只需要解析出后半部分的链接即可。
2.解析图片链接
代码示例:
1 | root = etree.HTML(html) |
为什么这里是写成//img/@src
,而不是//img/[@src]/text()
?
在 XPath 中,//img/@src
和 //img[@src]/text()
的含义和使用场景不同,主要区别在于它们提取的是元素的属性值还是元素的文本内容。
//img/@src
: 提取属性值
- 作用 :
//img/@src
用于选择所有<img>
标签的src
属性值。 - 解释 :
//img
:选择文档中所有的<img>
元素。@src
:选择每个<img>
元素的src
属性值。
- 返回值 :它直接返回属性的值,比如
/static/images/beginner/9cwjdins.jpg
,即图片的 URL。
//img[@src]/text()
: 提取元素文本
- 作用 :
//img[@src]/text()
用于选择所有具有src
属性的<img>
元素的 文本内容 。 - 解释 :
//img[@src]
:选择所有带有src
属性的<img>
元素。text()
:提取该元素的文本内容。
- 返回值 :它会返回元素的文本内容,而不是属性的值。
在这里的<img>
标签是一个 自闭合标签 ,通常不会包含任何文本内容。因此,//img[@src]/text()
通常不会返回任何有效的结果,因为 <img>
标签中没有文本。
- Title: Python 爬虫教程 06
- Author: loskyertt
- Created at : 2024-10-18 16:38:02
- Updated at : 2024-11-13 03:07:38
- Link: https://redefine.ohevan.com/2024/10/18/06Python爬虫/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments