<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 常見問題 > 譯者:[OSGeo 中國](https://www.osgeo.cn/) ## Scrapy與BeautifulSoup或LXML相比如何? [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/) 和 [lxml](http://lxml.de/) 是用于分析HTML和XML的庫。Scrapy是一個應用程序框架,用于編寫爬行網站并從中提取數據的網絡 Spider 。 Scrapy提供了一個用于提取數據的內置機制(稱為 [selectors](topics/selectors.html#topics-selectors) )但是你可以很容易地使用 [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/) (或) [lxml](http://lxml.de/) )相反,如果你覺得和他們一起工作更舒服的話。畢竟,它們只是解析可以從任何Python代碼導入和使用的庫。 換句話說,比較 [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/) (或) [lxml](http://lxml.de/) )剪貼就像比較 [jinja2](http://jinja.pocoo.org/) 到 [Django](https://www.djangoproject.com/) . ## 我可以用 Scrapy 和 BeautifulSoup 嗎? 是的,你可以。如上所述 [above](#faq-scrapy-bs-cmp) , [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/) 可用于分析Scrapy回調中的HTML響應。你只需要把反應的身體 `BeautifulSoup` 對象并從中提取所需的任何數據。 下面是一個使用BeautifulSoupAPI的 Spider 示例, `lxml` 作為HTML解析器: ```py from bs4 import BeautifulSoup import scrapy class ExampleSpider(scrapy.Spider): name = "example" allowed_domains = ["example.com"] start_urls = ( 'http://www.example.com/', ) def parse(self, response): # use lxml to get decent HTML parsing speed soup = BeautifulSoup(response.text, 'lxml') yield { "url": response.url, "title": soup.h1.string } ``` 注解 `BeautifulSoup` 支持多個HTML/XML分析器。見 [BeautifulSoup's official documentation](https://www.crummy.com/software/BeautifulSoup/bs4/doc/#specifying-the-parser-to-use) 哪些是可用的。 ## Scrapy支持哪些Python版本? scrappy在cpython(默認的python實現)和pypy(從pypy 5.9開始)下支持python 2.7和python 3.4+。python 2.6支持從scrapy 0.20開始被丟棄。Scrapy1.1中添加了python 3支持。在Scrapy 1.4中添加了Pypy支持,在Scrapy 1.5中添加了Pypy3支持。 注解 對于Windows上的python 3支持,建議使用anaconda/miniconda作為 [outlined in the installation guide](intro/install.html#intro-install-windows) . ## Scrapy 有沒有從 Django“steal”X? 可能吧,但我們不喜歡這個詞。我們認為django_u是一個偉大的開源項目,也是一個可以效仿的例子,所以我們把它作為scrappy的靈感來源。 我們相信,如果某件事已經做得很好,就沒有必要再去改造它。這個概念,除了作為開源和自由軟件的基礎之一,不僅適用于軟件,也適用于文檔、程序、政策等。因此,我們選擇從已經正確解決了這些問題的項目中復制想法,而不是自己解決每個問題,而是關注我們需要解決的實際問題。奧爾維。 如果Scrapy能為其他項目提供靈感,我們會感到驕傲。隨時從我們這里偷東西! ## Scrapy與HTTP代理一起工作嗎? 對。通過HTTP代理下載器中間件提供對HTTP代理的支持(因為scrapy 0.8)。見 [`HttpProxyMiddleware`](topics/downloader-middleware.html#scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware "scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware") . ## 如何在不同的頁面中抓取具有屬性的項目? 見 [向回調函數傳遞附加數據](topics/request-response.html#topics-request-response-ref-request-callback-arguments) . ## scrapy崩潰:importError:沒有名為win32api的模塊 您需要安裝 [pywin32](https://sourceforge.net/projects/pywin32/) 因為 [this Twisted bug](https://twistedmatrix.com/trac/ticket/3707) . ## 如何在 Spider 中模擬用戶登錄? 見 [使用formRequest.from_response()模擬用戶登錄](topics/request-response.html#topics-request-response-ref-request-userlogin) . ## 是寬度優先還是深度優先? 默認情況下,Scrapy使用 [LIFO](https://en.wikipedia.org/wiki/Stack_(abstract_data_type)) 用于存儲掛起請求的隊列,這基本上意味著它會爬入 [DFO order](https://en.wikipedia.org/wiki/Depth-first_search) . 這種訂單在大多數情況下更方便。如果你真的想爬進去 [BFO order](https://en.wikipedia.org/wiki/Breadth-first_search) ,您可以通過設置以下設置來完成此操作: ```py DEPTH_PRIORITY = 1 SCHEDULER_DISK_QUEUE = 'scrapy.squeues.PickleFifoDiskQueue' SCHEDULER_MEMORY_QUEUE = 'scrapy.squeues.FifoMemoryQueue' ``` ## 我可憐的爬蟲有記憶漏洞。我能做什么? 見 [調試內存泄漏](topics/leaks.html#topics-leaks) . 另外,python還有一個內置的內存泄漏問題,如中所述。 [無泄漏泄漏](topics/leaks.html#topics-leaks-without-leaks) . ## 我怎么能讓 Scrapy 消耗更少的記憶? 請參閱前面的問題。 ## 我可以在spider中使用基本的HTTP身份驗證嗎? 是的,看到了 [`HttpAuthMiddleware`](topics/downloader-middleware.html#scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware "scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware") . ## 為什么Scrapy用英語而不是我的母語下載頁面? 嘗試更改默認值 [Accept-Language](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4) request header by overriding the [`DEFAULT_REQUEST_HEADERS`](topics/settings.html#std:setting-DEFAULT_REQUEST_HEADERS) 設置。 ## 我在哪里可以找到一些零碎項目的例子? 見 [實例](intro/examples.html#intro-examples) . ## 我可以在不創建項目的情況下運行 Spider 嗎? 對。你可以使用 [`runspider`](topics/commands.html#std:command-runspider) 命令。例如,如果有一個 Spider 用 `my_spider.py` 您可以用以下方式運行它的文件: ```py scrapy runspider my_spider.py ``` 見 [`runspider`](topics/commands.html#std:command-runspider) 命令獲取更多信息。 ## 我收到“過濾的異地請求”消息。我怎么修理它們? 這些信息(記錄 `DEBUG` 級別)不一定意味著有問題,因此您可能不需要修復它們。 這些消息由非現場 Spider 中間件拋出,這是一個 Spider 中間件(默認情況下啟用),其目的是過濾掉對 Spider 所覆蓋域之外的域的請求。 有關詳細信息,請參閱: [`OffsiteMiddleware`](topics/spider-middleware.html#scrapy.spidermiddlewares.offsite.OffsiteMiddleware "scrapy.spidermiddlewares.offsite.OffsiteMiddleware") . ## 在生產中,建議采用什么方式部署 Scrapy 履帶? 見 [部署 Spider](topics/deploy.html#topics-deploy) . ## 我可以使用JSON進行大型出口嗎? 這取決于你的產出有多大。見 [this warning](topics/exporters.html#json-with-large-data) 在里面 [`JsonItemExporter`](topics/exporters.html#scrapy.exporters.JsonItemExporter "scrapy.exporters.JsonItemExporter") 文檔。 ## 我可以從信號處理程序返回(扭曲)延遲嗎? 一些信號支持從其處理程序返回延遲,而另一些則不支持。請參見 [內置信號參考](topics/signals.html#topics-signals-ref) 去知道哪些。 ## 響應狀態代碼999是什么意思? 999是雅虎網站用來限制請求的自定義響應狀態代碼。嘗試使用下載延遲來降低爬行速度 `2` (或更高)在你的 Spider : ```py class MySpider(CrawlSpider): name = 'myspider' download_delay = 2 # [ ... rest of the spider code ... ] ``` 或者通過在項目中設置全局下載延遲 [`DOWNLOAD_DELAY`](topics/settings.html#std:setting-DOWNLOAD_DELAY) 設置。 ## 我可以調用嗎? `pdb.set_trace()` 從我的 Spider 身上調試它們? 是的,但是您也可以使用scriby shell,它允許您快速分析(甚至修改)您的spider正在處理的響應,這通常比普通的老版本更有用。 `pdb.set_trace()` . 有關詳細信息,請參閱 [從spiders調用shell來檢查響應](topics/shell.html#topics-shell-inspect-response) . ## 最簡單的方法是將我的所有抓取項轉儲到json/csv/xml文件中? 要轉儲到JSON文件,請執行以下操作: ```py scrapy crawl myspider -o items.json ``` 要轉儲到csv文件,請執行以下操作: ```py scrapy crawl myspider -o items.csv ``` 要轉儲到XML文件,請執行以下操作: ```py scrapy crawl myspider -o items.xml ``` 有關詳細信息,請參閱 [Feed 導出](topics/feed-exports.html#topics-feed-exports) ## 這個巨大的秘密是什么? `__VIEWSTATE` 某些形式中使用的參數? 這個 `__VIEWSTATE` 參數用于使用ASP.NET/VB.NET生成的網站。有關其工作方式的詳細信息,請參見 [this page](http://search.cpan.org/~ecarroll/HTML-TreeBuilderX-ASP_NET-0.09/lib/HTML/TreeBuilderX/ASP_NET.pm) . 還有,這里有一個 [example spider](https://github.com/AmbientLighter/rpn-fas/blob/master/fas/spiders/rnp.py) 會刮傷其中一個站點。 ## 解析大型XML/CSV數據源的最佳方法是什么? 使用xpath選擇器解析大型提要可能會有問題,因為它們需要在內存中構建整個提要的DOM,這可能會非常慢,并且會消耗大量內存。 為了避免在內存中一次分析所有提要,可以使用函數 `xmliter` 和 `csviter` 從 `scrapy.utils.iterators` 模塊。事實上,這就是食性 Spider (參見 [Spider](topics/spiders.html#topics-spiders) )在蓋下使用。 ## Scrapy是否自動管理cookies? 是的,Scrapy接收并跟蹤服務器發送的cookie,并像任何普通的Web瀏覽器一樣,在隨后的請求中發送它們。 有關詳細信息,請參閱 [請求和響應](topics/request-response.html#topics-request-response) 和 [CookiesMiddleware](topics/downloader-middleware.html#cookies-mw) . ## 我如何才能看到從Scrapy發送和接收的cookies? 啟用 [`COOKIES_DEBUG`](topics/downloader-middleware.html#std:setting-COOKIES_DEBUG) 設置。 ## 我怎樣才能指示 Spider 停止自己呢? 提高 [`CloseSpider`](topics/exceptions.html#scrapy.exceptions.CloseSpider "scrapy.exceptions.CloseSpider") 回調異常。有關詳細信息,請參閱: [`CloseSpider`](topics/exceptions.html#scrapy.exceptions.CloseSpider "scrapy.exceptions.CloseSpider") . ## 我怎樣才能防止我的廢機器人被禁止? 見 [避免被禁止](topics/practices.html#bans) . ## 我應該使用 Spider 參數或設置來配置我的 Spider 嗎? 兩個 [spider arguments](topics/spiders.html#spiderargs) 和 [settings](topics/settings.html#topics-settings) 可以用來配置 Spider 。沒有strict的規則要求使用其中一個或另一個,但是設置更適合于參數,一旦設置,就不會改變太多,而spider參數的更改更頻繁,甚至在每次spider運行時,有時甚至需要spider運行(例如,設置spider的起始URL)。 舉個例子來說明,假設您有一個 Spider 需要登錄到一個站點來獲取數據,并且您只想從站點的某個部分(每次都不同)獲取數據。在這種情況下,登錄的憑證將是設置,而要擦除的部分的URL將是spider參數。 ## 我正在抓取一個XML文檔,而我的xpath選擇器沒有返回任何項 可能需要刪除命名空間。見 [正在刪除命名空間](topics/selectors.html#removing-namespaces) .
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看