Python爬虫:xpath常用方法示例

简介: Python爬虫:xpath常用方法示例
# -*-coding:utf-8-*-
html = """
<html>
 <head>
  <base href='http://example.com/' />
  <title>Example website</title>
 </head>
 <body>
  <div id='images'>
   <a href='image1.html'>Name: My image 1 <br /><img src='image1_thumb.jpg' /></a>
   <a href='image2.html'>Name: My image 2 <br /><img src='image2_thumb.jpg' /></a>
   <a href='image3.html'>Name: My image 3 <br /><img src='image3_thumb.jpg' /></a>
   <a href='image4.html'>Name: My image 4 <br /><img src='image4_thumb.jpg' /></a>
   <a href='image5.html'>Name: My image 5 <br /><img src='image5_thumb.jpg' /></a>
  </div>
 </body>
</html>
"""
from scrapy.selector import Selector
sel = Selector(text=html)
print("================title===============")
title_by_xpath = sel.xpath("//title//text()").extract_first()
print(title_by_xpath)
title_by_css = sel.css("title::text").extract_first()
print(title_by_css)
print("================href===============")
hrefs = sel.xpath("//a/@href").extract()
print(hrefs)
hrefs_by_css = sel.css("a::attr(href)").extract()
print(hrefs_by_css)
print("================img===============")
imgs = sel.xpath("//a[contains(@href, 'image')]/@href").extract()
print(imgs)
imgs_by_css = sel.css("a[href*=image]::attr(href)").extract()
print(imgs_by_css)
print("================src===============")
src = sel.xpath("//a[contains(@href, 'image')]/img/@src").extract()
print(src)
src_by_css = sel.css("a[href*=image] img::attr(src)").extract()
print(src_by_css)
print("================ re ===============")
text_by_re = sel.css("a[href*=image]::text").re(r"Name:\s*(.*)")
print(text_by_re)
print("================ xpath ===============")
div = sel.xpath("//div")  # 相对路径
print(div)
a = div.xpath(".//a").extract() # 从当前提取所有元素
print(a)
print("================ text ===============")
text='<a href="#">Click here to go to the <strong>Next Page</strong></a>'
sel1 = Selector(text=text)
# a下面的文字
a = sel1.xpath("//a/text()").extract()
print(a)
# a 下面所有的文字,包括strong
a = sel1.xpath("//a//text()").extract()
print(a)
# 解析出所有文字内容
a = sel1.xpath("string(//a)").extract()
print(a)
a = sel1.xpath("string(.)").extract()
print(a)
# 简化写法,推荐
xp = lambda x: sel.xpath(x).extract()
all_a = xp("//a/text()")
print(all_a)
相关文章
|
10天前
|
数据采集 存储 XML
Python爬虫定义入门知识
Python爬虫是用于自动化抓取互联网数据的程序。其基本概念包括爬虫、请求、响应和解析。常用库有Requests、BeautifulSoup、Scrapy和Selenium。工作流程包括发送请求、接收响应、解析数据和存储数据。注意事项包括遵守Robots协议、避免过度请求、处理异常和确保数据合法性。Python爬虫强大而灵活,但使用时需遵守法律法规。
|
12天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
13天前
|
数据采集 Web App开发 监控
高效爬取B站评论:Python爬虫的最佳实践
高效爬取B站评论:Python爬虫的最佳实践
|
20天前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
61 6
|
14天前
|
数据采集 存储 JSON
Python爬虫开发中的分析与方案制定
Python爬虫开发中的分析与方案制定
|
18天前
|
数据采集 JSON 测试技术
Python爬虫神器requests库的使用
在现代编程中,网络请求是必不可少的部分。本文详细介绍 Python 的 requests 库,一个功能强大且易用的 HTTP 请求库。内容涵盖安装、基本功能(如发送 GET 和 POST 请求、设置请求头、处理响应)、高级功能(如会话管理和文件上传)以及实际应用场景。通过本文,你将全面掌握 requests 库的使用方法。🚀🌟
38 7
|
18天前
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
18天前
|
数据采集 存储 XML
Python实现网络爬虫自动化:从基础到实践
本文将介绍如何使用Python编写网络爬虫,从最基础的请求与解析,到自动化爬取并处理复杂数据。我们将通过实例展示如何抓取网页内容、解析数据、处理图片文件等常用爬虫任务。
109 1
|
20天前
|
数据挖掘 Python
Python示例,展示如何找到最近一次死叉之后尚未形成金叉的位置
金融分析中,“死叉”指短期移动平均线(如MA5)跌破长期移动平均线(如MA10),而“金叉”则相反。本文提供Python代码示例,用于找出最近一次死叉后未形成金叉的位置,涵盖移动平均线计算、交叉点判断及结果输出等步骤,适合金融数据分析。
22 1
|
4天前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
32 0
下一篇
无影云桌面