码迷,mamicode.com
首页 > 其他好文 > 详细

【scrapy】关于xpath helper中能匹配,但是在程序里匹配为none的问题

时间:2018-08-07 19:01:52      阅读:1552      评论:0      收藏:0      [点我收藏+]

标签:webdriver   extract   lin   bdr   csdn   sele   sel   纯粹   解决方法   

原本使用xpath helper匹配的时候还是好好的,然鹅,把这个.//*[@id=‘novelInfo‘]/table/tbody/tr[3]/td[1]/复制到代码里就不行了,debug的时候显示none

novelMonthClick=response.xpath(".//*[@id=‘novelInfo‘]/table/tbody/tr[3]/td[1]/text()").extract_first() 这里debug结果时None

由于我要爬取的信息在第二个tap的一个表格里(网页打开时,默认显示tap1)原以为是因为js,试过用selenium来模拟,点击tap2:

self.driver = webdriver.Chrome()
self.driver.get(response.url)
time.sleep(3)
tap2=self.driver.find_element_by_id(‘novelInfoTab‘).click()

可是结果依旧 = =

搞了大半天,终于终于被我找到解决方法,感谢这位网友https://blog.csdn.net/u012836179/article/details/69950730

原因:浏览器复制的xpath会自动优化,自己加上tbody,其实网页源代码里是没有的。

解决办法:去掉xpath中的tbody即可。

果然将的上面的代码改为

novelMonthClick=response.xpath(".//*[@id=‘novelInfo‘]/table/tr[3]/td[1]/text()").extract_first()

再来debug就可以啦!!

而且事实证明上面使用那个selenium模拟点击并没什么卵用。。。所以这个纯粹只是浏览器自己添加了tbody的原因,和动态加载网友并木有关系。。。。

【scrapy】关于xpath helper中能匹配,但是在程序里匹配为none的问题

标签:webdriver   extract   lin   bdr   csdn   sele   sel   纯粹   解决方法   

原文地址:https://www.cnblogs.com/HAHACHANGEFROMNOW/p/9438591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!