xpath

5、爬虫系列之scrapy框架

梦想的初衷 提交于 2020-01-26 23:55:19
一 scrapy框架简介 1 介绍 (1) 什么是Scrapy?   Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板。对于框架的学习,重点是要学习其框架的特性、各个功能的用法即可。 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。Scrapy 是基于twisted框架开发而来,twisted是一个流行的事件驱动的python网络框架。因此Scrapy使用了一种非阻塞(又名异步)的代码来实现并发。 整体架构大致如下: ''' Components: 1、引擎(EGINE) 引擎负责控制系统所有组件之间的数据流,并在某些动作发生时触发事件。有关详细信息,请参见上面的数据流部分。 2、调度器(SCHEDULER) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的优先级队列,

python获取笔趣阁最近更新小说列表

ⅰ亾dé卋堺 提交于 2020-01-26 19:51:03
目标数据: 代码: import requests from lxml import etree headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'} web_Source_Code = requests.get("http://www.yuetutu.com", headers=headers) print(web_Source_Code.status_code) html = etree.HTML(web_Source_Code.text) block_1 = html.xpath('//div[@id="newscontent"]/div[@class="l"]/ul/li') return_Date = [] for block_2 in block_1: novel_Classification = block_2.xpath('span[@class="s1"]/a/text()') name_Of_The_Novel = block_2.xpath('span[@class="s2"]/a/text()') novel_Chapter =

scrapy爬虫框架 (3. xpath学习)

筅森魡賤 提交于 2020-01-26 18:51:47
文章目录 1.xpath简介 2.xpath节点 3.xpath语法 3.1 选取节点 3.1.1 常例 3.1.2 通配 3.1.3 选取多条路径 3.2 谓语 1.xpath简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历,用来确定XML文档中某部分位置。 2.xpath节点 节点关系 2.1 父(Parent) 每个元素以及属性都有一个父。 在下面的例子中,book 元素是 title、author、year 以及 price 元素的父: < book > < title > Harry Potter < / title > < author > J K . Rowling < / author > < year > 2005 < / year > < price > 29.99 < / price > < / book > 2.2 子(Children) 元素节点可有零个、一个或多个子。 在下面的例子中,title、author、year 以及 price 元素都是 book 元素的子: < book > < title > Harry Potter < / title > < author > J K . Rowling < / author > < year > 2005 < / year > <

C#发现之旅第二讲 C#-XSLT开发

走远了吗. 提交于 2020-01-26 15:43:16
C#发现之旅第二讲 C# - XSLT 开发 袁永福 2008-5-15 系列课程说明 为了让大家更深入的了解和使用C#,我们开始这一系列的主题为“C#发现之旅”的技术讲座。考虑到各位大多是进行WEB数据库开发的,而所谓发现就是发现我们所不熟悉的领域,因此本系列讲座内容将是C#在WEB数据库开发以外的应用。目前规划的主要内容是图形开发和XML开发,并计划编排了多个课程。在未来的C#发现之旅中,我们按照由浅入深,循序渐进的步骤,一起探索和发现C#的其他未知的领域,更深入的理解和掌握使用C#进行软件开发,拓宽我们的视野,增强我们的软件开发综合能力。 本系列课程配套的演示代码下载地址为 http://www.cnblogs.com/Files/xdesigner/cs_discovery.zip 。 本系列课程已发布的文章有 C#发现之旅第一讲 C#-XML开发 C#发现之旅第二讲 C#-XSLT开发 C#发现之旅第三讲 使用C#开发基于XSLT的代码生成器 C#发现之旅第四讲 Windows图形开发入门 C#发现之旅第五讲 图形开发基础篇 C#发现之旅第六讲 C#图形开发中级篇 C#发现之旅第七讲 C#图形开发高级篇 C#发现之旅第八讲 ASP.NET图形开发带超链接的饼图 C#发现之旅第九讲 ASP.NET验证码技术 C#发现之旅第十讲 文档对象模型 本课程说明

Scrapy入门教程

那年仲夏 提交于 2020-01-26 08:27:21
关键字: scrapy 入门教程 爬虫 Spider 作者: http://www.cnblogs.com/txw1958/ 出处: http://www.cnblogs.com/txw1958/archive/2012/07/16/scrapy-tutorial.html 在这篇入门教程中,我们假定你已经安装了Scrapy。如果你还没有安装,那么请参考 安装指南 。 我们将使用开放目录项目(dmoz)作为抓取的例子。 这篇入门教程将引导你完成如下任务: 创建一个新的Scrapy项目 定义提取的Item 写一个Spider用来爬行站点,并提取Items 写一个Item Pipeline用来存储提取出的Items Scrapy是由Python编写的。如果你是Python新手,你也许希望从了解Python开始,以期最好的使用Scrapy。如果你对其它编程语言熟悉,想快速的学习Python,这里推荐 Dive Into Python 。如果你对编程是新手,且想从Python开始学习编程,请看下面的 对非程序员的Python资源列表 。 新建工程 在抓取之前,你需要新建一个Scrapy工程。进入一个你想用来保存代码的目录,然后执行: Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp.

XPath教程

北城余情 提交于 2020-01-26 02:59:40
XPath 简介 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。 因此,对 XPath 的理解是很多高级 XML 应用的基础。 在学习之前应该具备的知识: 在您继续学习之前,应该对下面的知识有基本的了解: HTML / XHTML XML / XML 命名空间 什么是 XPath? XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准 XPath 路径表达式 XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。 XPath 标准函数 XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。 XPath 在 XSLT 中使用 XPath 是 XSLT 标准中的主要元素。如果没有 XPath 方面的知识,您就无法创建 XSLT 文档。 XQuery 和 XPointer 均构建于 XPath 表达式之上。XQuery 1.0 和

Python爬虫:数据解析 之 xpath

故事扮演 提交于 2020-01-25 23:37:05
资料: W3C标准: https://www.w3.org/TR/xpath/all/ W3School: https://www.w3school.com.cn/xpath/index.asp 菜鸟教程: https://www.runoob.com/xpath/xpath-tutorial.html xpath教程: http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html XPATH在线测试: http://www.bejson.com/testtools/xpath/ 来源: https://www.cnblogs.com/wbyixx/p/12233532.html

Selenium2(WebDriver)_如何判断WebElement元素对象是否存在

这一生的挚爱 提交于 2020-01-25 22:32:50
1.  selenium中如果去寻找元素,而元素不存在的话,通常会抛出NoSuchElementException 导致测试失败,但有时候,我们需要去确保页面元素不存在,才是我们正确的验收条件下面的方法可以用来判定页面元素是否存在 1 public boolean doesWebElementExist(WebDriver driver, By selector) 2 { 3 4 try 5 { 6 driver.findElement(selector); 7 return true; 8 } 9 catch (NoSuchElementException e) 10 { 11 return false; 12 } 13 } 2. 一般有这样的应用场合,例如我们要验证在一个网站是否登录成功,那么可以通过判断登录之后是否显示相应元素: WebElement linkUsername = driver.findElement(By.xpath("//a[contains(text(),"+username+")]")); return linkUsername.isDisplayed(); 这一方法的前提是:该元素之前已经存在,仅仅需要判断是否被显示。 现在存在另一种场合,页面元素并不存在,即通过driver

HTML, CSS, Javascript, jQuery, Stylesheet, Xml之间的关系

 ̄綄美尐妖づ 提交于 2020-01-25 22:30:12
1.CSS是HTML的搭档. 在编码过程中,它们发挥不同的作用:HTML负责网页的具体内容(结构),而CSS则修饰网页的表现形式(布局)。 CSS有一个优越的特性,即它可以对页面布局进行集中管理。也就是说,你不必在每个标签里都使用style属性;相反,你可以只声明一次,浏览器便会按相应的页面布局效果来显示文本: 通过把CSS文档独立出来,你就可以同时对多个页面的布局进行集中管理, 方便统一风格。这也是现在网站上的通行方式, 最佳选择。 2.Javascript是用来给HTML一些操作行为. 3.jQuery是用来规范javascript, 结构与行为分离, 不要一团乱麻. 从这一点看, 类似jQuery之于原始的javascript, 原始的javascript需要在页面元素上添加事件如<a onlick="">tt</a>, 这样页面一大就很乱了. jQuery把这些事件都集中到一起,保持一个整洁的html结构. 4.Stylesheet 5.Xml XML 用来描述数据,而 HTML 则用来显示数据。 在没有任何有关如何显示数据的信息的情况下,大多数的浏览器都会仅仅把 XML 文档显示为源代码。 6.XHTML 教程 Html要求松, Xml要求严, 因此XHtml是介于二者之间的规范, 用来给手机等限制设备上的浏览器使用, 而PC上的浏览器ie等html,

Iterating through a list of elements inside an element with a specific index

和自甴很熟 提交于 2020-01-25 21:18:26
问题 I have an XML-document that I'm trying to extract data from. <folder> <list index="1"> <item index="1" > <field type="IMAGE"> <url>https://www.test.com/0001.png</url> </field> </item> <item index="2"> <field type="IMAGE"> <url>https://www.test.com/0002.png</url> </field> </item> </list> etc... I'm trying to get a list of all the fields that have the type "IMAGE" inside of the list with the index 1. There are multiple lists in the xml but they have other indexes, but I only want to extract the