我有一个包含100,000个网址的列表,目前我只使用Django sitemaps为这些网址生成一个books.xml
网站地图。
class Books(Sitemap):
changefreq = "daily"
priority = 0.5
def items(self):
#Do stufff
return list_of_urls
但我想要的是将这个XML分成几部分,每个XML文件只包含10,000个URL。这些XML文件的名称将为books1.xml
,books2.xml
等。
所以,例如,如果我在books.xml
中有46,000个网址,那么拆分的XML将是
books1.xml #will contain 10,000 urls
books2.xml #will contain 10,000 urls
books3.xml #will contain 10,000 urls
books4.xml #will contain 10,000 urls
books5.xml #will contain 6,000 urls
#
def get_books_list():
#get all the urls
#splited list into lists of size 10000 each
return blst # blst is the list of lists each list will contain 10k urls
class Products(Sitemap):
changefreq = "daily"
priority = 0.5
def items(self):
blist = get_books_list()
for l in blist:
sitemaps['books'+blist.index(l)+1] = l #dictionary with key as a name of file and value is the list of 10k urls
所以我得到了拆分列表,现在我无法获得进一步处理的任何线索。
我有2-3个另外的站点地图,这些地图将附加到这本词典中 所以它会是一些东西
sitemaps = {'books1': ,
'books2': ,
'books3': ,
'index':,
'main_sitemap':}
我想要这个结果连接字典。
答案 0 :(得分:0)
您可以在以下链接中阅读在Django中管理文件:
https://docs.djangoproject.com/en/1.6/topics/files/
它基本上解释创建文件:
这非常简单直接。
进一步处理:
希望您了解处理多个Sitemaps文件的进一步过程。您必须创建索引文件,其中包含指向所有子站点地图文件的链接。这样Web爬虫就可以读取索引文件并创建索引。 有关索引文件的详细信息,请参阅此处:https://support.google.com/webmasters/answer/71453?hl=en&ref_topic=4581190
此外,作为标准,最多只有 50,000个网址应该驻留在一个Sitemap文件中。 有关指南和格式的详细信息,请参阅此处:https://support.google.com/webmasters/answer/183668?hl=en&ref_topic=4581190