簡體   English   中英

使用scrapy抓取網絡數據的困難

[英]Difficulty in web-scraping data using scrapy

我正在嘗試使用https://www.ta.com/portfolio/business-services 中的scrapy 抓取數據,但是響應為 NULL。 我正在尋找使用代碼response.css("div.tiles.js-portfolio-tiles a::attr(href)").extract()在 div.tiles js-portfolio-tiles 中抓取 href 我認為這有什么與::before ,它出現在此之前,但也許不是。 我該如何提取這個? 網站 HTML

您有興趣檢索的元素由您的瀏覽器使用 javascript 加載。 默認情況下,scrapy 無法使用 javascript 加載元素,因為它不是瀏覽器,它只是檢索原始 HTML。

Scrapy shell 是一個非常有用的工具,用於檢查 scrapy 收到的響應中的可用內容。

這組命令將在您的默認 Web 瀏覽器中打開響應:

$ scrapy shell
>>> fetch("https://www.ta.com/portfolio/business-services")
>>> view (response)

如您所見,js-portfolio 磁貼不可見,因為它們尚未加載。

我在開發者工具的網絡面板中查看了 AJAX 請求,看起來您需要的信息可能在 XHR 請求中可用。 如果不是,那么您將需要使用其他軟件來加載 javascript,即 scrapy splash 或 selenium,我建議先探索 AJAX (XHR) 請求,因為這會更快更容易。

有關使用瀏覽器開發工具檢查 AJAX 請求的更多詳細信息,請參閱此問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM