為什麼要使用scrapy框架?scrapy框架有哪些優點?
它更容易構建大規模的抓取專案
它非同步處理請求,速度非常快
它可以使用自動調節機制自動調整爬行速度
爬蟲發起請求request的時候呼叫,列如更換修改**ip,修改ua
爬蟲中介軟體
scrapy 是以廣度優先還是深度優先進行爬取的呢?
預設情況下,scrapy 使用 lifo 佇列來儲存等待的請求。簡單的說,就是深度優先順序。深度優先對大多數情況
下是更方便的。如果您想以 廣度優先順序 進行爬取,你可以設定以下的設定:
我能在不建立 scrapy 專案的情況下執行乙個爬蟲(spider)麼?
是的。您可以使用 runspider 命令。例如,如果您有個 spider 寫在 my_spider.py 檔案中,您可以執行:
scrapy runspider my_spider.py
1我收到了 「filtered offsite request」 訊息。如何修復?
這些訊息(以 debug 所記錄)並不意味著有問題,所以你可以不修復它們。這些訊息由 offsite spider 中介軟體(middleware)所丟擲。 該(預設啟用的)中介軟體篩選出了不屬於當前 spider 的站點請求。
我能對大資料(large exports)使用 json 麼?
這取決於您的輸出有多大。參考 jsonitemexporter 文件中的 這個警告 。我能在訊號處理器(signal handler)中返回(twisted)引用麼? 有些訊號支援從處理器中返回引用,有些不行。
將所有爬取到的 item 轉存(dump)到 json/csv/xml 檔案的最簡單的方法?
dump 到 json 檔案:
scrapy crawl myspider -o items.json
1dump 到 csv 檔案:
scrapy crawl myspider -o items.csv
1dump 到 xml 檔案:
scrapy crawl myspider -o items.xml
1分析大 xml/csv 資料來源的最好方法是?
使用 xpath 選擇器來分析大資料來源可能會有問題。選擇器需要在記憶體中對資料建立完整的 dom 樹,這過程速度很慢且消耗大量記憶體。
為了避免一次性讀取整個資料來源,您可以使用 scrapy.utils.iterators 中的 xmliter 及 csviter 方法。 實際上,這也是 feed spider(參考 spiders )中的處理方法。
scrapy 自動管理 cookies 麼?
是的,scrapy 接收並保持伺服器返回來的 cookies,在之後的請求會傳送回去,就像正常的網頁瀏覽器做的那樣。
我應該使用 spider 引數(arguments)還是設定(settings)來配置 spider 呢?
spider 引數 及 設定(settings) 都可以用來配置您的 spider。沒有什麼強制的規則來限定要使用哪個,但設定(se
ttings)更適合那些一旦設定就不怎麼會修改的引數,而 spider 引數則意味著修改更為頻繁,在每次 spider 執行
都有修改,甚至是 spider 執行所必須的元素 (例如,設定 spider 的起始 url)。
這裡以例子來說明這個問題。假設您有乙個 spider 需要登入某個**來 爬取資料,並且僅僅想爬取特定**的特定部分(每次都不一定相同)。 在這個情況下,認證的資訊將寫在設定中,而爬取的特定部分的 url 將是 spider
scrapy常見問題與解決方案
1.輸出不正確 改 結果不變?其實是因為反覆使用命令 scrapy crawl spider o 1.json 時候,增加的輸出資料不會覆蓋,而是繼續往後面新增。2.request不執行 request url,meta callback self.parse2,dont filter true d...
常見問題 朗動常見問題
常見問題一 方向盤變沉 檢查胎壓是否正常,輪胎是否過度磨損。助力幫浦不工作,前輪氣壓低。冬天的話,冷車在冬天助力油比較稠,方向會重一點。檢查轉向助力油。1 應該是是助力系統有問題或則助力潤滑油有問題。2 如果你在駕車時感覺方向盤變緊,汽車偏向一側,需要檢查輪胎,或進行車輪平衡 定位。在這些問題剛剛發...
面試常見問題 1 this的常見問題
this 的含義 this關鍵字是乙個非常重要的語法點。毫不誇張地說,不理解它的含義,大部分開發任務都無法完成。前一章已經提到,this可以用在建構函式之中,表示例項物件。除此之外,this還可以用在別的場合。但不管是什麼場合,this都有乙個共同點 它總是返回乙個物件。簡單說,this就是屬性或方...