最近在爬一个网站https://www.malwaredomainlist.com/mdl.php主要是把表格中的数据爬下来
在浏览器中审查元素可知,所需要的数据在一个table标签中,如下图所示:
可通过xpath提取出table中的tr标签,如下:
selector = Selector(response)
products = selector.xpath('//table[@class="table"]//tr')
然后对products
遍历获得每个tr标签内容:
for product in products[4:]:
#对product的操作,product里面包含所需要的表格中的一行
#从4开始遍历products,是因为有两个表头,可以在上一步中使用not剔除表头
之后看到第一列的内容在一个<nobr>
标签中,如下图
可以通过下面代码提取内容:
#td[1]表示该行的第一列
product.xpath('./td[1]/nobr//text()').extract_first()
但是
当我获得其他列内容的时候,发现里面有若干个<wbr>
标签,如果按照上面的代码只会获得第一个
上述代码只获得了如下内容:
photoscape.ch/Setup.
sarahdaniella.com/sw
解决
解决代码:
data = ''
for result in product.xpath('./td[2]'):#td[2]表示该行的第二列
data = data.join(result.xpath('string(.)').extract_first())
下图是两种代码的运行的效果:
可以看到该解决方案成功的获取到了<td>
标签下的全部内容。