所以我正在使用SCRAPY来刮掉一个网站的书籍。
我让爬虫工作了,它爬行得很好,但是当它在XPATH中使用select清理HTML时,它有点不能正常工作。现在,由于它是一个图书网站,我在每个页面上有近131本图书,他们的XPATH如下所示
例如,获取书名-
1st Book --- > /html/body/div/div[3]/div/div/div[2]/div/ul/li/a/span
2nd Book ---> /html/body/div/div[3]/div/div/div[2]/div/ul/li[2]/a/span
3rd book ---> /html/body/div/div[3]/div/div/div[2]/div/ul/li[3]/a/span
DIV[]编号随着书的增加而增加。我不确定如何让它进入循环,这样它就可以捕获所有的标题。我必须为图片和作者名字做这件事,但我认为它将是相似的。只需要完成这个初始的。
提前感谢您的帮助。
发布于 2014-05-14 11:06:44
有几种不同的方法可以达到这个目的
sel.xpath("//div@id='id'")
for i in range(0,upto_num_of_divs):list = sel.xpath("//div%s“%i)
对于范围(0,upto_num_of_divs) )中的i:upto_num_of_divs= sel.xpath("//divposition > =1 and position() < list
发布于 2012-09-20 08:18:32
下面是一个如何解析示例html的示例:
lis = hxs.select('//div/div[3]/div/div/div[2]/div/ul/li')
for li in lis:
book_el = li.select('a/span/text()')
通常,您可以执行诸如//div[@class="final-price"]//span
之类的操作来获得一个xpath中所有跨度的列表。确切的表达式取决于您的html,这只是给您一个想法。
否则,上面的代码应该可以解决这个问题。
https://stackoverflow.com/questions/12500624
复制相似问题