在學(xué)習(xí)使用pyspider時(shí)遇到一個(gè)問(wèn)題,當(dāng)頁(yè)面中有js處理時(shí)辑畦,需要在self.crawl 中加入fetch_type='js'參數(shù) 如下
@every(minutes=24 * 60)
def on_start(self):
self.crawl('http://travel.qunar.com/travelbook/list.htm', callback=self.index_page)
@config(age=10 * 24 * 60 * 60)
def index_page(self, response):
for each in response.doc('li > .tit > a').items():
self.crawl(each.attr.href, callback=self.detail_page, fetch_type="js")
next=response.doc('.next').attr.href
self.crawl(next,callback=self.index_page)
@config(priority=2)
def detail_page(self, response):
return {
"url": response.url,
"title": response.doc('title').text(),
}
但是呢,遇到問(wèn)題了,加了fetch_type='js'之后稽屏,該請(qǐng)求就報(bào)錯(cuò)
[E 190828 13:41:01 base_handler:203] 501 Server Error
判斷應(yīng)該是js處理的庫(kù) phantomjs的問(wèn)題,發(fā)現(xiàn)本地沒(méi)有安裝phantomjs西乖,
1 下載phantomjs狐榔,目前phantomjs封檔暫停維護(hù)了坛增,所以最新的版本也就到2.1.1
2 下載好的文件夾隨便放在那個(gè)平常不會(huì)動(dòng)的目錄下即可
3 配置.bash_profile
vim .bash_profile
添加export PATH
export PATH=/{你自己找的路徑}/phantomjs-2.1.1-macos/bin:$PATH
如下
image.png
接下來(lái)就是配置生效操作
source .bash_profile
然后就是查看操作
echo $PATH
確認(rèn)配置信息已添加即可
接下來(lái)就是重要一步,重啟你的pyspider
然后薄腻,就可以正常使用了