scrapinghub上传和使用文件
scrapinghub upload and use file
我在 scrapyhub 上上传了我的蜘蛛。我知道如何使用我的 *.txt 文件上传,但我该如何使用它?
我的 setup.py 文件看起来像
setup(
name = 'project',
version = '1.0',
packages = find_packages(),
package_data={
'youtube_crawl': ['resources/Names.txt']
},
entry_points = {'scrapy': ['settings = youtube_crawl.settings']},
)
那我要用这个Name.txt.
在上传之前我的蜘蛛看起来像
def parse(self, response):
with open('resources/Names.txt','rt') as f:
for link in f:
url = "https://www.youtube.com/results?search_query={}".format(link)
name = link.replace('+',' ')
yield Request(url, meta={'name':name}, callback=self.parse_page, dont_filter=True)
所以我的问题是:如何在抓取中心上使用我的文件?
我试过这段代码,但不明白它是如何工作的,以及如何将它与我的代码集成 =)
data = pkgutil.get_data("youtube_crawl", "resources/Names.txt")
函数returns一个二进制字符串,它是指定资源的内容。
这行代码:
data = pkgutil.get_data("youtube_crawl", "resources/Names.txt")
相当于这个块:
with open('resources/Names.txt') as f:
data = f.read()
f.closed
现在您可以逐行读取二进制字符串了:
def parse(self, response):
data = pkgutil.get_data("youtube_crawl", "resources/Names.txt")
for link in data.split('\n'):
url = "https://www.youtube.com/results?search_query={}".format(link)
name = link.replace('+',' ')
yield Request(url,
meta={'name':name},
callback=self.parse_page,
dont_filter=True)
查看 Python 3 pkgutil or inputoutput 个文档页面了解更多详细信息。
我在 scrapyhub 上上传了我的蜘蛛。我知道如何使用我的 *.txt 文件上传,但我该如何使用它?
我的 setup.py 文件看起来像
setup(
name = 'project',
version = '1.0',
packages = find_packages(),
package_data={
'youtube_crawl': ['resources/Names.txt']
},
entry_points = {'scrapy': ['settings = youtube_crawl.settings']},
)
那我要用这个Name.txt.
在上传之前我的蜘蛛看起来像
def parse(self, response):
with open('resources/Names.txt','rt') as f:
for link in f:
url = "https://www.youtube.com/results?search_query={}".format(link)
name = link.replace('+',' ')
yield Request(url, meta={'name':name}, callback=self.parse_page, dont_filter=True)
所以我的问题是:如何在抓取中心上使用我的文件?
我试过这段代码,但不明白它是如何工作的,以及如何将它与我的代码集成 =)
data = pkgutil.get_data("youtube_crawl", "resources/Names.txt")
函数returns一个二进制字符串,它是指定资源的内容。
这行代码:
data = pkgutil.get_data("youtube_crawl", "resources/Names.txt")
相当于这个块:
with open('resources/Names.txt') as f:
data = f.read()
f.closed
现在您可以逐行读取二进制字符串了:
def parse(self, response):
data = pkgutil.get_data("youtube_crawl", "resources/Names.txt")
for link in data.split('\n'):
url = "https://www.youtube.com/results?search_query={}".format(link)
name = link.replace('+',' ')
yield Request(url,
meta={'name':name},
callback=self.parse_page,
dont_filter=True)
查看 Python 3 pkgutil or inputoutput 个文档页面了解更多详细信息。