Xpath grep元素

时间:2017-06-23 21:06:30

标签: html scrapy scrapy-spider

我正在使用Scrapy Python尝试从网站上grep数据。 我如何使用Xpath grep这个结构?

"Section": {
Need this text_1 :
  [45767 : Win_1 : TEST_1]
  [1232004 : Win_2 : TEST_2]
  [122004: Win_3 : TEST_3]
,
Need this text_2:
  [234 : Win_E : TEST_E]
  [3476 : Win_C : TEST_C]
,
Need this text_3: 
  [85567 : Win_T : TEST_T]
  [435656 : Win_A : TEST_A]
  [980: Win_Z : TEST_Z]
}

我希望输出具有以下结构:

$ java -jar h2o.jar

如何创建适当的xpath选择以获取此结构? 我可以单独使用所有“h3”,所有“a”然后所有标签与类,但我如何匹配?

1 个答案:

答案 0 :(得分:1)

GREP你说的?!大声笑,你完全可以将它命名为wron,但为了保持行话的清洁,理解你的解析/提取......这对于scrapy来说是新的吗?还是网络开发方面的东西?无论如何...我无法在这里一个答案教你如何xpth / regex就像一个专业人士...只有你能保持的方式,但我会投入我的意见。

首先,xpath是非常有用的,它涉及到必须建立到stadard的网站,这不会让他们说不好但是在你给的html snipet ...它的结构可以洙..我推荐css提取..这些是价值......

year = response.css('td.tmp_year a::text').extract()
outcome = response.css('td.tmp_outcome b::text').extract()
category= response.css('span.tmp_category::text').extract()

PRO-TIP:对于您认为必要的情况,您可以将网页保存为HTML文件,并通过引用它的直接文件路径来使用scrapy shell ...所以我将html片段保存到文件中我的桌面然后运行...

scrapy shell file:///home/scriptso/Desktop/letsGREPlol.html

无论如何......至于xpath ...因为你问了lol ...蛋糕。让我们比较xpath与cssand告诉我你可以看到......它?洛尔

response.css('td.tmp_outcome b :: text')。extract()  所以是一个td标签....并且类名是tmp_outcome,下一个节点是一个粗体标签...其中文本因此将其声明为带有:: text

的文本

response.xpath( '// TD [@类= “tmp_outcome”] / B /文本()')。提取物()   所以xpath基本上是说我们在td标签的整个网站上用一个模式加星...然后是class = tmp_outcome,然后是粗体,然后在xpath中声明type / text()用于文本.... / @ href是因为..是的,你猜错了