目标:从div类list_area daily_all
中抓取文本数据。
我首先使用scrapy shell“抓取了”我要从中抓取数据的网站: https://comic.naver.com/webtoon/weekday.nhn
使用“ scrapy shell”脚本:
scrapy shell 'https://comic.naver.com/webtoon/weekday.nhn'
然后使用xpath,我要从div类“ list_area daily_all”中抓取所有文本数据:
response.xpath("//div[@id='wrap']/div[@id='container']/div[@class='list_area daily_all']/text()")
但是,以上代码未返回任何内容。 我在做什么错了?
答案 0 :(得分:1)
由于div[@id='container']
和div[@class='list_area daily_all']
不是父母和孩子,因此您不会获得对象。
再添加一个斜杠,您将成功:
In [1]: response.xpath("//div[@id='wrap']/div[@id='container']//div[@class='list_area daily_all']")
Out[1]: [<Selector xpath="//div[@id='wrap']/div[@id='container']//div[@class='list_area daily_all']" data=u'<div class="list_area daily_all">\r\n '>]
与文本相同。您选择了非常大的块,并且其中包含很多标签和文本。您可以选择所有文本,例如:
In [2]: response.xpath("//div[@id='wrap']/div[@id='container']//div[@class='list_area daily_all']//text()")
Out[2]:
[<Selector xpath="//div[@id='wrap']/div[@id='container']//div[@class='list_area daily_all']//text()" data=u'\r\n \r\n\t\t\t\t'>,
<Selector xpath="//div[@id='wrap']/div[@id='container']//div[@class='list_area daily_all']//text()" data=u'\r\n\t\t\t\t\t'>,
...
或者在选择器中更精确些。