django动态刮刀range_funct分页

时间:2014-07-03 04:06:32

标签: django pagination range django-dynamic-scraper

我在我的某个应用程序中使用django-dynamic-scraper,我已浏览docs,以下是我的设置:

我使用的对象类网址是:http://www.example.com/products/brandname_products.html

网站上的分页如下所示。

第1页:http://www.example.com/products/brandname_products.html 第2页:http://www.example.com/products/brandname_products2.html 第3页:http://www.example.com/products/brandname_products3.html 第4页:http://www.example.com/products/brandname_products4.html

上述网址中的brandname是动态的,取决于品牌的产品页面。我不能为每个品牌提供不同的刮刀,因为有超过10000个品牌,所以我试图使用一个刮刀对象。

在我使用的scraper对象中,我已经按如下方式定义了分页选项:

pagination_typeRANGE_FUNCT
pagination_append_str_products{page}.html
pagination_page_replace1,100,2

但是刮刀请求以下分页网址

http://www.example.com/products/brandname_products.html_products2.html http://www.example.com/products/brandname_products.html_products3.html http://www.example.com/products/brandname_products.html_products4.html

而不是

http://www.example.com/products/brandname_products2.html http://www.example.com/products/brandname_products3.html http://www.example.com/products/brandname_products4.html

问:为什么将替换字符串附加到url的末尾而不是实际用对象类url中的_products.html替换它?我做错了什么,如何解决这个问题。

1 个答案:

答案 0 :(得分:4)

这样调用pagination_append_str选项,因为字符串是附加到基本网址而不是替换它! : - )

所以一切都是正确的,您只需要从基本网址中删除_products_html,这样最终的网址就会一起构建而不会加倍网址部分。