在重新组织scrapy项目时,我想从我的 input[type=submit] {
width: 60%;
background-color: #4CAF50;
color: white;
padding: 14px 20px;
margin: 8px 0;
border: none;
border-radius: 4px;
cursor: pointer;
}
input[type=submit]:hover {
background-color: #45a049;
}
div {
border-radius: 5px;
background-color: #f2f2f2;
padding: 20px;
}
</style>
<body>
<h3>Using CSS to style an HTML Form</h3>
<div>
<form action="/action_page.php">
<label for="fname">First Name</label><br>
<input type="text" id="fname" name="firstname" placeholder="Your name.."><br>
<label for="lname">Last Name</label><br>
<input type="text" id="lname" name="lastname" placeholder="Your last name..">
<br>
<label for="country">Country</label><br>
<select id="country" name="country">
<option value="australia">Australia</option>
<option value="canada">Canada</option>
<option value="usa">USA</option>
</select>
<input type="submit" value="Submit">
</form>
</div>
</body>
</html>
文件创建一个包。
我想改变这个......
pipelines.py
到此......
├── my_scraper
│ ├── __init__.py
│ ├── items.py
│ ├── pipelines.py
│ ├── settings.py
│ └── spiders
└── scrapy.cfg
但在导入├── my_scraper
│ ├── __init__.py
│ ├── items.py
│ ├── pipelines
│ │ ├── __init__.py
│ │ ├── MyPipeline1.py
│ │ ├── MyPipeline2.py
│ │ └── MyPipeline3.py
│ ├── settings.py
│ └── spiders
└── scrapy.cfg
pipelines/__init__.py
in并引用from my_pipeline1 import MyPipeline1
from my_pipeline2 import MyPipeline2
from my_pipeline3 import MyPipeline3
settings.py
现在,当我运行ITEM_PIPELINES = {
'my_scraper.pipelines.MyPipeline1': 100,
'my_scraper.pipelines.MyPipeline2': 200,
'my_scraper.pipelines.MyPipeline3': 300,
}
时,我收到了错误...
scrapy crawl my_scraper
为了使我的代码长期可维护,我不确定如何处理此问题。任何提示/帮助表示赞赏!
答案 0 :(得分:1)
但是在管道/ init .py
中导入每个管道类之后
from my_pipeline1 import MyPipeline1
from my_pipeline2 import MyPipeline2
from my_pipeline3 import MyPipeline3
看看你的项目树,看起来上面的内容似乎完全没必要,事实上你甚至没有任何名为my_pipeline1
的内容。
所以只需在pipelines/__init__.py
中删除这些行
您可以在包中嵌套并拥有多个包。在这种情况下,您有my_spider
个包,其中包含spiders
和pipelines
个包,因此您可以安全地导入它们:
from myspider.pipelines.pipelines1 import SomeClass
# or in settings as
ITEM_PIPELINES = {
'myspider.pipelines.pipelines1.MyPipeline': 100,
}