从网页抓取数据(ChromeDevTools自带获取元素XPath的Intruder里还有ul吗?)

优采云 发布时间: 2022-03-03 10:01

  从网页抓取数据(ChromeDevTools自带获取元素XPath的Intruder里还有ul吗?)

  有时需要从网页上的表格中获取数据进行分析,例如:

  

  由于数据混合在HTML中,没有API,所以获取第二列的rrname比较麻烦。

  一般的思路是,像lxml或者BeautifulSoup这样的库解析HTML来从中提取数据,当然,即使是正则的……

  但是对于这个简单的需求,其实有一个很方便的方法。

  Chrome的DevTools自带获取元素XPath的功能,在Elements中的目标元素上右击,点击Copy - Copy XPath。

  

  然后使用控制台中的 $x() 函数根据 XPath 定位元素。

  但是有点可惜,这里的td里还有ul:

  

  所以如果你使用$x('/html/body/table/tbody/tr/td[2]'),它的innerText将收录ul中的值。如图,ul里面的SD比较多:

  

  查看XPath的语法,发现任何节点都可以用node()匹配:

  

  所以使用 $x('/html/body/table/tbody/tr/td[2]/node()[1]') 得到想要的rrname:

  

  将 rrname 放入域数组中:

  var domains = [];

$x('/html/body/table/tbody/tr/td[2]/node()[1]').forEach(function(e){domains.push(e.data)})

  

  然后复制到系统剪贴板:

  copy(domains.join(''))

  您也可以使用 Scrapy 编写爬虫。以后遇到这种需求,可以更改需要抓取的网址。

  另外,Burp Suite 的 Intruder 有一个 Grep - Extract 选项,视觉正则化相当有用。

  参考:chrome爬取页面上表格中某列的数据

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线