目标文件urls.txt
包含所有要下载的URL。
├─spiders
│ │ stockInfo.py
│ │ urls.txt
│ │ __init__.py
stockInfo.py
是我的抓取文件。
import scrapy
import os
import re
class QuotesSpider(scrapy.Spider):
name = "stockInfo"
projectFile = r"d:/toturial/toturial/spiders/urls.txt"
with open(projectFile,"r") as f:
urls = f.readlines()
start_urls = [url.strip() for url in urls]
def parse(self, response):
pass
我已经测试了以上stockInfo.py
可以在本地pc端使用以下命令成功运行:
scrapy crawl stockInfo
现在,我通过
将项目部署到远程端scrapy hub
pip install shub
shub login
API key: xxxxxxxxxxxxxxxxx
shub deploy 380020
遇到麻烦了:
IOError: [Errno 2] No such file or directory: 'd:/toturial/toturial/spiders/urls.txt'
将scrapy
部署到hub
时如何解决?
重写
projectFile = r“ d:/toturial/toturial/spiders/urls.txt”
为
projectFile =“ ./urls.txt”
何时在我的本地PC端运行它。
奇怪的是,没有必要重写
projectFile = r“ d:/toturial/toturial/spiders/urls.txt”
为
projectFile =“ ./urls.txt”
何时在远端scrapy hub
中运行它。
答案 0 :(得分:0)
1。添加新目录并在其中移动urls.txt
。
要添加新目录resources
,并将urls.txt
保存在其中。
我的新目录树如下。
tutorial
├─tutorial
│ ├─resources
| |--urls.txt
│ ├─spiders
| |--stockInfo.py
2。如下重写setup.py。
from setuptools import setup, find_packages
setup(
name='tutorial',
version='1.0',
packages=find_packages(),
package_data={
'tutorial': ['resources/*.txt']
},
entry_points={
'scrapy': ['settings = tutorial.settings']
},
zip_safe=False,
)
3。如下重写stockInfo.py
。
import scrapy
import os
import re
import pkgutil
class QuotesSpider(scrapy.Spider):
name = "stockInfo"
data = pkgutil.get_data("tutorial", "resources/urls.txt")
data = data.decode()
start_urls = data.split("\r\n")
def parse(self, response):
pass