一、問題:
在進行爬蟲的時候我們會用到xpath解析html文件,但是會有一種情況就是在xpath選擇器中可以使用,但是在代碼中就無法使用的情況。
二、原因:
1.是元素中有tbody的原因,這個元素是html生成時產生的,在使用xpath解析的時候無法解析,因此返回的列表為空值。
2.是因為沒有寫入獲取的內容。比如在xpath選擇其中可以使用但是在解析中沒有帶入//text()
三、解決辦法:
1.因此解決辦法便是刪除掉tbody這個標簽元素,因為它含有一個id的屬性,所以不能使用這個屬性。
2.解析中帶上//text()
1 content_text = ''.join(content.xpath('*//article[@class]/p[position()>2]//text()')).replace('\n', '').replace(' ', '') 2 time_ = ''.join(content.xpath('//*[@id="news-time"]//text()')) 3 origin = ''.join(content.xpath('//*[@id="user-info"]/h4/a//text()'))
四、參考: