2016-11-28 27 views
-1

我是全新的Scrapy,現在我正在開發一個項目,我需要使用Scrapy從這個網站爬行:https://www.google.com/partners/#a_search;bdgt=10000;lang=en;locn=United%20States;motv=0;wbst=http%253A%252F%252F
我無法將整個URL傳遞給Scrapy中的響應,所以我使用PYCHARM進行調試它,我發現我只能通過URL之前,有人可以幫我解決這個問題嗎?非常感謝!!!!爲什麼我不能使用Scrapy從這個URL爬取(使用「#」)?

+0

希望[這](http://stackoverflow.com/questions/33395133/scrapy-google-crawl-doesnt-work/33395421#33395421)幫助 – eLRuLL

+0

我試圖[鏈接](https://開頭WWW。 google.com/partners/?a_search....)[link](https://www.google.com/partners/?search...)(B)他們不起作用:( – jess1818

+0

或嘗試PhantomJS + Selenium裏面Scrapy .... [看我的答案](http://stackoverflow.com/a/40833619/4094231) – Umair

回答

3

Url片段(#之後的部分)未發送到遠程Web服務器;這就是HTTP的工作原理。片段在發送請求後由瀏覽器處理;在谷歌的情況下,它會觸發一些JavaScript功能等。

Scrapy不是瀏覽器 - 它不評估JavaScript; Scrapy只是通過HTTP下載數據。這就是Scrapy獲取頁面時從URL中剝離的原因 - 無法使用它。

如果要處理這些網址片段,你有兩個選擇:

  1. 模仿的是瀏覽器做 - 檢查什麼的HTTP請求時,你通過這個URL,然後在Scrapy模仿他們是決策;
  2. 使用瀏覽器引擎渲染頁面,例如Selenium,PhantomJS或Splash。有一個scrapy +飛濺集成插件:https://github.com/scrapy-plugins/scrapy-splash
+0

非常感謝你,我認爲飛濺是什麼確切的我正在尋找 – jess1818