股票信息爬取问题解析


使用scrapy爬取股票代码时遇到以下问题:

(1)'NoneType' object has no attribute 'split';


解答

        在scrapy shell窗口下使用xpath提取股票代码,开始仅提取一个,很顺利。提取很多,使用for循环遇到了问题,

弹出'NoneType' object has no attribute 'split'。

意思是在调用split()函数前,传递进来的变量由于某种原因,没有获得对应的值,是空值。

仔细看xpath路径时发现当路径为

sel.xpath('./ul[1]/li//a/text()') ;sel.xpath('./ul[1]/li[1]//a/text()')等以实数指代的就可以顺利执行。

以路径 .xpath('./ul[i+1]/li//a/text()');xpath('./ul[1]/li[i+1]//a/text()')等for循环的变量i指代时就出现该问题。

最后以xpath('./ul[1]/li//a/text()').extract()[i].split('(')[1].split(')')[0]的形式出现时,可以执行了。

        综上说明开始由于用i提取元素的语法不对,导致没有形成值,最后出现错误。

        正确的语法是:先提取内容整体,然后用切片方式选取单个元素进行筛选。

心得:遇到问题,一定要理解报错的具体含义

         编写复杂语法出错时,可进行拆解,从简单语法开始,一步步整合得到复杂结果。

股票信息爬取问题解析



股票信息爬取问题解析


股票信息爬取问题解析


股票信息爬取问题解析