我不能做到以下幾點:從scrapy.selector進口選擇錯誤
from scrapy.selector import Selector
的錯誤是:
文件 「/Desktop/KSL/KSL/spiders/spider.py」,行1,in from scrapy.selector import選擇器 ImportError:無法導入名稱選擇器
就好像LXML沒有安裝在我的機器上,但它是。另外,我認爲這是scrapy內置的默認模塊。也許不會?
想法?
我不能做到以下幾點:從scrapy.selector進口選擇錯誤
from scrapy.selector import Selector
的錯誤是:
文件 「/Desktop/KSL/KSL/spiders/spider.py」,行1,in from scrapy.selector import選擇器 ImportError:無法導入名稱選擇器
就好像LXML沒有安裝在我的機器上,但它是。另外,我認爲這是scrapy內置的默認模塊。也許不會?
想法?
嘗試導入HtmlXPathSelector代替。
from scrapy.selector import HtmlXPathSelector
然後使用。選擇()方法來解析出你的HTML。例如,
sel = HtmlXPathSelector(response)
site_names = sel.select('//ul/li')
如果你正在跟蹤的Scrapy網站(http://doc.scrapy.org/en/latest/intro/tutorial.html)的教程,更新的例子是這樣的:
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
class DmozSpider(BaseSpider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
]
def parse(self, response):
sel = HtmlXPathSelector(response)
sites = sel.select('//ul/li')
for site in sites:
title = site.select('a/text()').extract()
link = site.select('a/@href').extract()
desc = site.select('text()').extract()
print title, link, desc
希望這有助於!
對於Scrapy 0.18教程,請參閱http://doc.scrapy.org/en/0.18/intro/tutorial.html – dangra
這工作,但你在分析的定義缺少一個冒號()。我會編輯它,但stackoverflow有奇怪的6個字符最低編輯... – chrishiestand
好的趕上!固定。 – user256604
我遇到同樣的問題。我認爲你的scrapy版本有問題。
您可以鍵入scrapy version -v
進入cmd以檢查版本。據我所知,最新版本是0.24.4(2014.10.23)。你可以訪問http://scrapy.org/找到最新的。
本來這是由於我安裝scrapy(我的操作系統是Ubuntu的)方式相同的問題。我通過
sudo apt-get install python-scrapy
從python代替安裝它。如果您使用Anaconda只是做
conda install -c scrapinghub scrapy
如果沒有,那麼
pip install Scrapy
'從scrapy.selector進口Selector'對應於新的統一選擇API。如果您遵循http://doc.scrapy.org/en/latest/topics/selectors.html#constructing-selectors(版本0.19),則需要從源代碼安裝Scrapy。 Scrapy 0.19尚未發佈PyPI上正式 –