最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Scrapy中詭異xpath的匹配內(nèi)容失效問題及解決

 更新時間:2022年12月19日 14:52:19   作者:bladestone  
這篇文章主要介紹了Scrapy中詭異xpath的匹配內(nèi)容失效問題及解決方案,具有很好的價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

引言

在爬蟲的世界里,xpath是一種非常簡單易用的匹配規(guī)則,方便我們在web世界里提取需要的各類信息。

本文將講述一個xpath規(guī)則無效的問題分析過程。

環(huán)境介紹

Python 3.6.1 Scrapy 1.5.0

問題

在選用xpath之時,都是基于firefox或者chrome中自帶的Web開發(fā)工具來選取的。

這里一般推薦使用chrome的devtool,功能強(qiáng)大,簡單易用,童叟無欺,居家旅游必須良品呀。

具體示意如下:

基于xpath提取信息

基于xpath提取的路徑信息,示例如下:

//*[@id=”SpanPlanSchoolInfo”]/table[2]/tbody/tr[3]/td/table/tbody/tr[2]/td[1]/a

在Scrapy代碼中使用如下:

def parse(self, response):
    xpath_url = '//*[@id="SpanPlanSchoolInfo"]/table[2]/tbody/tr[3]/td/table/tbody/tr[2]/td[1]/a'
    urls = response.xpath(xpath_url)
    .....

但是在實(shí)際執(zhí)行中,卻一直沒有匹配到urls,根據(jù)實(shí)際上頁面返回正常,同時數(shù)據(jù)也是正確可以匹配到的,那問題出現(xiàn)在哪里呢?

問題分析

根據(jù)結(jié)果來分析,如果頁面存在,但是沒有正確的結(jié)果輸出,則一定是xpath的問題,但是xpath問題是基于chrome自帶的devtools工具copy而來的,怎么可能出錯恩?真是讓人想不透的問題…….

在經(jīng)過一番深入的反復(fù)嘗試之后,主要是基于scrapy提供的強(qiáng)大的scrapy shell交互工具,可以幫助開發(fā)者快速地一步一步地定位問題。

于是采取了逐步縮小xpath的方式,逐步定位問題,終于找到了問題的原因所在,那就是tbody是一個需要移除的tag標(biāo)簽。

將正確的xpath設(shè)置為:

//*[@id=”SpanPlanSchoolInfo”]/table[2]/tr[3]/td/table/tbody/tr[2]/td[1]/a

問題總結(jié)

雖然問題解決了,但是原因是什么呢?

經(jīng)過分析,主要是由于瀏覽器本身自動為table新增了tbody標(biāo)簽內(nèi)容,但是在xpath中是不需要的,需要在進(jìn)行xpath查詢之時移除掉。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

南雄市| 河西区| 红安县| 墨竹工卡县| 舒兰市| 五常市| 射阳县| 保德县| 襄汾县| 延安市| 镶黄旗| 华池县| 绍兴县| 财经| 金塔县| 叙永县| 桐柏县| 陈巴尔虎旗| 二连浩特市| 阜城县| 德昌县| 阜宁县| 玉树县| 邻水| 新巴尔虎左旗| 霍州市| 铅山县| 米脂县| 西乌珠穆沁旗| 开远市| 如东县| 灵川县| 双江| 肥西县| 文昌市| 琼中| 江川县| 彩票| 宁城县| 广昌县| 阳朔县|