Shi*_*dla 8 python web-crawler scrapy
例如,如果我有两个包含不同HTML的URL,则在scrapy中.现在我想为一个人编写两个单独的蜘蛛,并且想要同时运行两个蜘蛛.在scrapy中,可以同时运行多个蜘蛛.
在编写多个蜘蛛后的scrapy中,我们如何安排它们每6小时运行一次(可能就像cron作业一样)
我不知道上面的内容,你能用一个例子建议我如何执行上述事情.
提前致谢.
您可以尝试使用CrawlerProcess
from scrapy.utils.project import get_project_settings
from scrapy.crawler import CrawlerProcess
from myproject.spiders import spider1, spider2
1Spider = spider1.1Spider()
2Spider = spider2.2Spider()
process = CrawlerProcess(get_project_settings())
process.crawl(1Spider)
process.crawl(2Spider)
process.start()
Run Code Online (Sandbox Code Playgroud)
如果您想查看爬行的完整日志,请LOG_FILE在您的settings.py.
LOG_FILE = "logs/mylog.log"
Run Code Online (Sandbox Code Playgroud)
从操作系统级别同时运行两个 scrapy 脚本可能是最简单的。他们都应该能够保存到同一个数据库。创建一个 shell 脚本来调用两个 scrapy 脚本同时执行它们:
scrapy runspider foo &
scrapy runspider bar
Run Code Online (Sandbox Code Playgroud)
确保使该脚本可执行chmod +x script_name
要每 6 小时安排一次 cronjob,请crontab -e在终端中输入并编辑文件,如下所示:
* */6 * * * path/to/shell/script_name >> path/to/file.log
Run Code Online (Sandbox Code Playgroud)
第一个 * 是分钟,然后是小时等,星号是通配符。因此,这表示在时间可被 6 整除的任何时间(或每六个小时)运行该脚本。
| 归档时间: |
|
| 查看次数: |
5532 次 |
| 最近记录: |