關於在python中scrapy模組的scrapy shell中通過xpath無法查詢到相應的元素的問題
前言
某天打算使用scrapy shell爬取prts上資訊的時候複製了元素的xpath卻在scrapy shell中無法查詢到相應的結果,得到的結果是一個空列表,如圖:
但是在某些網站的某些元素卻是可以成功查詢到有效的結果,比如說百度網站的“百度一下”按鈕
正文
在網上搜索結果後主要有兩種觀點,第一種是Chrome的複製xpath會自動新增<tbody>標籤,即使原始碼上不存在這個標籤,這樣自然無法查詢到正確有效的結果,但是我爬取的prts的元素恰好有<tbody>標籤,所以不是這個原因。
第二種是某些網頁的原始碼會使用Javascript,這時使用python引擎的scrapy shell就無法識別了(大概?
You browser renders Javascript code and this leads to change in HTML code. So, in this case, you need to use a Javascript engine for requests in Scrapy. Please look at scrapy-splash to render JS and get same results as in browser.
Google翻譯結果:
您的瀏覽器呈現Javascript程式碼,這會導致HTML程式碼的更改。 因此,在這種情況下,您需要對Scrapy中的請求使用Javascript引擎。 請檢視scrapy-splash以呈現JS並獲得與瀏覽器相同的結果。
我想我的問題大概是這個原因,這時候使用JavaScript來作為引擎來處理請求大概可以解決問題了?
以上為個人的總結筆記,如果有錯誤還請大佬指教ww
參考資料網站:
https://blog.csdn.net/dta0502/article/details/82118524
https://stackoverflow.com/questions/56968124/xpath-on-browser-and-response-are-different