我一直试图从asp.net网站上删除一些日期,起始页应该是以下页面: http://www.e3050.com/Items.aspx?cat=SON
首先,我希望每页显示50个项目(来自select元素) 第二,我想翻页。
我尝试了以下代码,每页50个项目,但没有成功:
start_urls = ["http://www.e3050.com/Items.aspx?cat=SON"]
def parse(self, response):
requests = []
hxs = HtmlXPathSelector(response)
# Check if there's more than 1 page
if len(hxs.select('//span[@id="ctl00_ctl00_ContentPlaceHolder1_ItemListPlaceHolder_lbl_PageSize"]/text()').extract()) > 0:
# Get last page number
last_page = hxs.select('//span[@id="ctl00_ctl00_ContentPlaceHolder1_ItemListPlaceHolder_lbl_PageSize"]/text()').extract()[0]
i = 1
# preparing requests for each page
while i < (int(last_page) / 5) + 1:
requests.append(Request("http://www.e3050.com/Items.aspx?cat=SON", callback=self.parse_product))
i +=1
# posting form date (50 items and next page button)
requests.append(FormRequest.from_response(
response,
formdata={'ctl00$ctl00$ContentPlaceHolder1$ItemListPlaceHolder$pagesddl':'50',
'__EVENTTARGET':'ctl00$ctl00$ContentPlaceHolder1$ItemListPlaceHolder$pager1$ctl00$ctl01'},
callback=self.parse_product,
dont_click=True
)
)
for request in requests:
yield request
我没有深入研究过你的代码,但我看到了一些奇怪的东西:
首先,与使用
i
进行这些操作不同,您可以执行以下操作:然后你会:
您是否正在创建对同一URL的多个请求?
看看这是一个精确的解决方案。。
在parse方法中,每页选择50个产品
在第50页中处理分页
相关问题 更多 >
编程相关推荐