全部,
我正在尝试完全自动化我的抓取,它由3个步骤组成:
1-获取广告的索引页列表(由于各种原因,非零散工作)2-从步骤一中获得的索引页面中获取广告URL的列表(剪贴工作)
我的零碎项目在通常的目录中:
C: \Python27\Scripts\GetAdUrlsFromIndex_project\GetAdUrlFromIndex\spider\GetAdUrls_spider.py("GetAdUrls_spider"文件中的spider的名称为(name="GetAdUrls")
我的自动化步骤1和2的脚本位于以下目录中:
C: \Website_DATA\SCRIPTS\StepByStepLauncher.py
我尝试使用Scrapy文档导入爬网程序,并使用以下代码从脚本内部运行:
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.settings import Settings
from scrapy import log
from GetAdUrlsFromIndex.spiders.GetAdUrls_spider import getadurls
spider = getadurls(domain='website.com')
crawler = Crawler(Settings())
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run() # the script will block here
不幸的是,当我尝试运行此脚本时,我一直收到错误"No module named GetAdUrlsFromIndex.spider.GetAdUrl_spider"。。我试着把工作目录改到几个不同的地方,我摆弄着名字,似乎什么都不起作用。。
如果有任何帮助,我将不胜感激。。谢谢
如果C:Python27ScriptsGetAdUrlsFromIndex_projectGetAdUrlsFromIndex
和C:Python27ScriptsGetAdUrlsFromIndex_projectGetAdUrlsFromIndexspiders
中确实有__init__.py
,请尝试以这种方式修改脚本
import sys
from twisted.internet import reactor
from scrapy.crawler import Crawler
from scrapy.settings import Settings
from scrapy import log
sys.path.append('C:/Python27/Scripts/GetAdUrlsFromIndex_project')
from GetAdUrlsFromIndex.spiders.GetAdUrls_spider import getadurls
spider = getadurls(domain='website.com')
crawler = Crawler(Settings())
crawler.configure()
crawler.crawl(spider)
crawler.start()
log.start()
reactor.run() # the script will block here